Nodejs:'要求' Nodejs中的模块不能使用某些文件名

时间:2015-06-13 08:46:13

标签: javascript node.js

长期用户,第一次提问。

我有一个文件(让我们称之为file.js),我试图在文件顶部要求另一个名为user.service.js的文件:

var userService = require('./user.service');

我非常确定路径正确并且user.service.js文件正在导出已填充的对象:

在user.service.js中:

module.exports = {
    signIn: signIn,
    signUp: signUp,
    updateProfile: updateProfile
};

但是,userService始终是一个空对象{}。奇怪的是,如果我在同一目录中重新创建另一个名称的文件(例如user.service2.js),则require语句可以正常工作。或者,如果我将file.js重命名为其他内容,例如file2.js,通话有效。另外,如果我在user.service.js中的函数内部需要该文件,该语句也可以。但是,我更喜欢将require语句放在文件的顶部,并且可以使用其中的所有函数。

提前感谢您的帮助。

编辑:

以下是一些示例代码:

var userService = require('./user.service');

var testFunc = function () {
    console.log(userService);
    // this logs: {}

    var userServiceInternal = require('./user.service');
    console.log(userServiceInternal);
    // This logs: 
    // {
    //     signIn: [Function],
    //     signUp: [Function],
    //     updateProfile: [Function]
    // }
};

1 个答案:

答案 0 :(得分:2)

我想通了......我有一个循环的依赖。感谢您的评论!