我正在使用 ubuntu,我正在尝试使用 nodejs 运行脚本,但出现此错误。
/home/bebz/Documents/test# node server.js
module.js:338
throw err;
^
Error: Cannot find module 'merge-descriptors'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/bebz/node_modules/express/lib/express.js:6:13)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
有什么问题?我在正确的目录中,我也尝试使用 root 运行它,但没有任何反应。
server.js 里面是
// get dependencies
var app = require("express")();
// handle request and response
app.get("/", function(req, res) {
res.send({name:"Hello Wolrd"});
});
// initializing a port
app.listen( 5000);
一个简单的例子,只是为了表明 node.js 正在工作。
最佳答案
脚本似乎有一个未满足的依赖项 - 这意味着您必须先安装模块“merge-descriptors”。
脚本似乎也在使用“express”(并且“merge-descriptors”实际上看起来像“express”的依赖项)——因为这没有引发错误,一些依赖项似乎已经安装。
因此您可以尝试通过 npm install
或 npm update
安装缺少的那些。
更新:根据 npmjs.org “合并描述符”是“表达”的依赖项。查看您的堆栈跟踪表明您已全局安装“express” - 所以您应该尝试 npm update -g
如果这不能解决您的问题,您应该查看 this question .
关于node.js - 模块.js :338 throw err in node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28377583/