找不到模块(自定义模块)

时间:2015-10-01 06:47:01

标签: node.js

我关注文件夹结构。

enter image description here

我正在尝试访问其他文件中的自定义模块(core_programming/Constants.js)。

我可以使用以下代码在routes/index.js中访问它而没有任何问题。

var Constants = require('../core_programming/Constants.js');

但是当我尝试使用以下语句在core_programming/User.js内访问它时,我收到错误。

var Constants = require('Constants.js');

它出现以下错误:

module.js:338
throw err;
^

Error: Cannot find module 'Constants.js'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:286:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (D:\nodeJsProjects\AutomateBuild\core_programming\User.js:3:18)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
1 Oct 11:56:35 - [nodemon] app crashed - waiting for file changes before starting...

我已经尝试了不同的方式来定义require ../core_programming/Constants.js./core_programming/Constants.js中的路径,但没有任何效果。

从同一目录加载自定义模块的正确方法是什么。

而且,如果有帮助,我就在Windows上。

1 个答案:

答案 0 :(得分:6)

尝试使用:

var Constants = require('./Constants.js');

这将强制Node确定您正在寻找相对路径,而不是node_modules中的包。

在旁注中,Windows路径使用\,因此请考虑尝试:

var Constants = require('.\Constants.js');