2013-05-20 15 views
37

Ecco la struttura del progetto:node.js richiedono non riesce a trovare il modulo personalizzato

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

richiedo config.json, raeume.js e users.js da app.js e tutto funziona bene.

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

Poi mi richiedono config.json e couch.js dal user.js allo stesso modo e non troverà nulla.

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

Immagino che dovrebbe trovarlo. Dopo alcune ricerche ho visto un panorama diversificato di problemi, incluso il modo in cui il nodo è compilato. Così incluso: lavoro su osx 10.8 con il nodo v0.10.7.

risposta

83

Il percorso è relativo alla directory in cui si è require ing i file, quindi dovrebbe essere qualcosa di simile:

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

Un po 'di chiarezza, se si scrive

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

voi stanno cercando di require il modulo divano che risiede nella directory corrente, se si scrive

var couch = require('couch'); 

si sta provando a require il modulo divano installato tramite npm.

+0

provo relativa: var divano = require ('divano'); var config = require ('../ config'); trova config ma non divano. – thgie

+2

Ti sei perso '. /' In 'require ('couch');' –

+0

Non lavoro con me: quando faccio 'require ('qmlweb')' o 'require ('./ node_modules/qmlweb') ', dice che il modulo non può essere trovato. Eppure qmlweb è installato in node_modules/qmlweb, e tutti i file ci sono. – Michael

3

Ecco come si fa:

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

deve essere:

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

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