2013-05-20 7 views
37

Hier ist die Projektstruktur finden:node.js erfordern kann keine benutzerdefinierte Modul

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

Ich benötige config.json, raeume.js und users.js von app.js und es funktioniert gut.

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

Dann benötige ich config.json und couch.js von user.js die gleiche Weise, und es wird nichts finden.

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

Ich denke, es sollte es finden. Nach einigen Recherchen sah ich eine vielfältige Landschaft von Problemen einschließlich der Erstellung von Knoten. Also inklusive: Ich arbeite an OSX 10.8 mit Knoten v0.10.7.

Antwort

83

Der Pfad ist relativ zu dem Verzeichnis, in dem Sie require ing die Dateien sind, so sollte es wie etwas sein:

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

Ein bisschen Klarstellung, wenn Sie

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

Sie schreiben versuchen, require das Couch-Modul, das im aktuellen Verzeichnis befindet, wenn Sie schreiben

var couch = require('couch'); 

Sie versuchen, require das Couch-Modul über npm installiert zu installieren.

+0

Ich versuche, relativ: var Couch = require ('Couch'); var config = require ('../ config'); findet Config aber nicht Couch. – thgie

+2

Sie haben das '. /' In 'require ('Couch') vermisst;' –

+0

Ich arbeite nicht mit mir: wenn ich entweder 'require ('qmlweb ')' oder 'require (' ./ node_modules/qmlweb ') ', sagt es das Modul kann nicht gefunden werden. Qmlweb ist jedoch in node_modules/qmweb installiert und alle Dateien sind dort. – Michael

3

Hier ist, wie Sie es tun:

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

Es muss sein:

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

var couch = require(./couch) (same directory)