2015-11-06 150 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的信心。另一方面,这是一个基本/常见的情况,我热衷于说这是我的错!

对不起,没有解决方案!