错误:在本地npm上找不到模块“ http-errors”

时间:2018-11-19 12:32:19

标签: javascript node.js npm

我在理解节点如何解析本地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

1 个答案:

答案 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上了解更多信息。