我试图使用简单的"颜色"模块在我的日志中设置cli-colors,没什么特别的。
好吧,我在路径colors.js
中有一个名为./app/config/colors.js
的模块,内容为:
var clc = require('cli-color');
var colors = {
ok: clc.cyan,
error: clc.red.bold,
warn: clc.yellowBright,
high: clc.white.bgGreen
};
module.exports = colors;
简单。好吧,当我在server.js中需要它时(在项目的根目录,在/ app之上)它工作正常,但是,当我尝试在./app/config/db.js
中使用它时,它会抛出一个错误:< / p>
Error: Cannot find module './app/config/colors.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/nano/Dev/bears-api/app/config/db.js:3:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
14 Sep 10:21:00 - [nodemon] app crashed - waiting for file changes before starting...
为什么它在server.js中有效?
答案 0 :(得分:19)
您可能需要使用相对路径的模块。
相对于需求模块的位置解析相对路径。
引用docs
前缀为“./”的模块与调用require()的文件有关。 也就是说,circle.js必须与foo.js在同一目录中 要求('./ circle')找到它。
所以如果你做了
var whatever = require('./app/config/colors.js');
位于./app/config/
内的模块内,然后节点将查找./app/config/app/config/colors.js
并失败。
如果要求和所需模块都在同一目录中,请使用:
var whatever = require('./colors.js');
甚至更短:
var whatever = require('./colors');
答案 1 :(得分:-3)
该模块应位于&#34; node_modules&#34;像你所描述的那样访问它的文件夹。