我关注文件夹结构。
我正在尝试访问其他文件中的自定义模块(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上。
答案 0 :(得分:6)
尝试使用:
var Constants = require('./Constants.js');
这将强制Node确定您正在寻找相对路径,而不是node_modules
中的包。
在旁注中,Windows路径使用\
,因此请考虑尝试:
var Constants = require('.\Constants.js');