簡體   English   中英

module.js:338在node.js中拋出錯誤

[英]module.js:338 throw err in node.js

我正在使用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 installnpm update安裝缺少的內容。

更新:根據npmjs.org, “ merge-descriptors”是“ express”的依賴項。 查看您的stacktrace顯示您已全局安裝了“ express”-因此,您應該嘗試npm update -g

如果那不能解決您的問題,您應該看看這個問題

npm更新

當模塊安裝順序不完美或存在多個模塊時,我會看到此信息。

npm update可以解決此問題,建議使用不正確的版本。

每當您收到module.js:338 throw err; 嘗試檢查計算機上是否已安裝npm

UserName$ npm -v

如果獲得版本名稱,則很明顯已經安裝了npm

如果沒有得到版本名稱,則說明您的安裝存在問題或未安裝。

要安裝npm ,請在終端中鍵入以下命令:

UserName$ curl -0 -L http://npmjs.org/install.sh | sudo sh

還要注意我加sudo的前sudo sh具體取決於用戶權限的命令。

模塊名稱和文件名不匹配時,會發生此錯誤。 對模塊和文件名使用相同的名稱后即可解決。 例如

module - Hello,
File name - Hello.js

您應該安裝merge-descriptors模塊。 打開終端或命令提示符,然后運行以下命令:

npm install --save merge-descriptors

我也遇到了同樣的問題,您應該嘗試npm install,也可以選擇npm update,但是使用npm update時,最新的npm版本將安裝在您的本地環境中。 這對於全局項目是不希望的,因為您可能會在全局環境中發現未滿足的依賴關系問題。

我建議使用npm install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM