2013-05-20 14 views
37

Oto struktura projektu:node.js wymagać nie można znaleźć niestandardowy moduł

/ 
    app.js 
    package.json 
    /node_modules 
    /app 
    config.json 
    /frontend 
     assets and html tpls 
    /modules 
     couch.js 
     raeume.js 
     users.js 

wymagam config.json, raeume.js i users.js z app.js i wszystko działa poprawnie.

var config = require('./app/config'); 
var raeume = require('./app/modules/raeume'); 
var users = require('./app/modules/users'); 

Następnie wymagam config.json i couch.js z user.js w ten sam sposób i nie będzie niczego znajdował.

var couch  = require('./app/modules/couch'); 
var config = require('./app/config'); 

Chyba powinien go znaleźć. Po pewnych badaniach zobaczyłem zróżnicowany krajobraz problemów, w tym sposób kompilacji węzła. W związku z tym: Pracuję na osx 10.8 z węzłem v0.10.7.

Odpowiedz

83

Ścieżka jest w stosunku do katalogu, w którym jesteś require ing pliki, więc powinno być coś takiego:

var couch = require('./couch'); 
var config = require('../config'); 

trochę wyjaśnień, jeśli piszesz

var couch = require('./couch'); 

ci próbujesz uzyskać require moduł kanapki, który znajduje się w bieżącym katalogu, jeśli napiszesz:

var couch = require('couch'); 

Próbujesz zainstalować moduł kanapy require przez npm.

+0

staram względna: var kanapa = require ('kanapa'); var config = require ("../ config"); znajduje konfigurację, ale nie kanapę. – thgie

+2

Brakowało ci '. /' In 'require ('couch');' –

+0

Nie działa ze mną: kiedy robię 'require ('qmlweb')' lub 'require ('./ node_modules/qmlweb') ', mówi, że modułu nie można znaleźć. Jednak qmlweb jest zainstalowany w module node_modules/qmlweb i wszystkie pliki tam są. – Michael

3

Oto jak to zrobić:

var users = require('./../modules/users'); 
2

Musi być:

var config = require(../../app/config) 

var couch = require(./couch) (same directory) 
Powiązane problemy