2013-05-20 26 views
37

Dưới đây là cấu trúc dự án:Node.js yêu cầu không thể tìm thấy mô-đun tùy chỉnh

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

tôi yêu cầu config.json, raeume.js và users.js từ app.js và tất cả hoạt động tốt.

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

Sau đó, tôi yêu cầu config.json và couch.js từ user.js theo cùng một cách và nó sẽ không tìm thấy bất kỳ thứ gì.

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

Tôi đoán nó sẽ tìm thấy nó. Sau một số nghiên cứu, tôi đã thấy một cảnh quan đa dạng của các vấn đề bao gồm cách nút được biên dịch. Do đó bao gồm: Tôi làm việc trên osx 10.8 với nút v0.10.7.

Trả lời

83

Đường dẫn là tương đối so với thư mục mà bạn quan require ing các tập tin, vì vậy nó phải được cái gì đó như:

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

Một chút làm rõ, nếu bạn viết

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

bạn đang cố gắng để require mô-đun đi văng nằm trong thư mục hiện tại, nếu bạn viết

var couch = require('couch'); 

bạn đang cố gắng để require mô-đun đi văng được cài đặt qua npm.

+0

tôi cố gắng tương đối: var ghế = require ('chiếc ghế'); var config = require ('../ config'); tìm cấu hình chứ không phải đi văng. – thgie

+2

Bạn đã bỏ lỡ '. /' Trong 'require ('couch'); ' –

+0

Tôi không làm việc với tôi: khi tôi thực hiện' require (' qmlweb ') 'hoặc' require (' ./ node_modules/qmlweb ') ', nó nói mô-đun không thể được tìm thấy. Tuy nhiên qmlweb được cài đặt trong node_modules/qmlweb và tất cả các tệp đều có. – Michael

3

Đây là cách bạn làm điều đó:

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

Nó phải là:

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

var couch = require(./couch) (same directory) 
Các vấn đề liên quan