我在理解节点如何解析本地http-errors
文件夹中的模块时遇到问题。我的应用程序使用名为node_modules
的模块,该模块是❯ npm ls --prod | Select-String -Pattern "http-errors"
| | +-- http-errors@1.6.3
| | | +-- http-errors@1.6.2
| | +-- http-errors@1.6.3
中的依赖项。我使用Powershell命令进行确认
http-errors
为什么在找不到http-errors
模块时仍然有错误?
添加:这是我需要const createError = require('http-errors');
function catchNotFound(_req, _res, next) {
next(createError(404));
}
CLIENT MAC ADDR: ....
CLIENT IP: ...
GATEWAY IP: ...
PXE-E32: TFTP open timeout
答案 0 :(得分:0)
我弄清楚了node.js如何解析模块。打开REPL会话并输入
❯ node
> module.paths
[ 'C:\\Users\\truong\\Projects\\DDAC\\repl\\node_modules',
'C:\\Users\\truong\\Projects\\DDAC\\node_modules',
'C:\\Users\\truong\\Projects\\node_modules',
'C:\\Users\\truong\\node_modules',
'C:\\Users\\node_modules',
'C:\\node_modules',
'C:\\Users\\truong\\.node_modules',
'C:\\Users\\truong\\.node_libraries',
'C:\\Program Files\\nodejs\\lib\\node' ]
> require('http-errors')
Error: Cannot find module 'http-errors'
at Function.Module._resolveFilename (module.js:536:15)
>
Node.js只能解析那些路径中的模块。即使npm也具有这种依赖性,但是如果没有目录名称与模块名称完全相同,则require无法解决。在this article上了解更多信息。