2015-11-06 54 views
0

我一直在玩nodejs幾個月,但從昨天晚上它表現出有趣的表演。require()不能在module.exports裏面工作

這是一個愚蠢的問題,可以用一個例子來更好地解釋。

這是我的代碼:

FILE-A:

var Q = require('q'); 
var user = require('../p/user'); 

module.exports = { 
    test: function() { 
     console.log("*****************************************"); 
     console.log(user); 
     console.log(require('../p/user')); 
     console.log("*****************************************"); 
    } 
}; 

和文件B:

var fileA = require('../fileA'); 
var Q = require('q'); 
fileA.test(); 

很簡單!問題是導入到FILE-A的「用戶」是空的!這是輸出:

***************************************** 
{} 
{ get: [Function], 
update: [Function], 
getProfilePicture: [Function] } 
***************************************** 

正如你可以看到,如果我直接調用的代碼需要(),一切都很好!

我覺得愚蠢的原因顯然是我的錯,但我找不到解決方案。你有什麼想法可以導致這個問題?

非常感謝!

UPDATE:這是../p/user文件

/************************************ 
* 
***********************************/ 
var Q = require('q'); 
var cassandra = require('../../db/cassandra'); 
var dateManager = require('../../commons/DateManager'); 

var db = "test"; 
var table = "user"; 

module.exports = { 
     ...   
}; 
+0

顯示您的user.js文件。可能在第一次通話後初始化? –

+0

希望這有助於我看不到任何錯誤! '/ ************************************ * * ******* ***************************/ var Q = require('q'); var cassandra = require('../../ db/cassandra'); var dateManager = require('../../ commons/DateManager'); var db =「test」; var table =「user」; module.exports = {\t }; ' – Mark

+0

奇怪。你可以在''var user = require('../ p/user');'in fileA'後面加入'console.log(user);' – keithmo

回答

0

解決....但你不會喜歡它,我只是重新安裝和的NodeJS現在一切是好的! (同一版本 - 第4版)

我非常沮喪,這不是我喜歡處理問題的方式,它嚴重影響了我對nodejs的信心。另一方面,這是一個基本/常見的情況,我熱衷於說這是我的錯!

對不起,沒有解決方案!