我正在使用node.js在Ubuntu服务器上运行JavaScript代码 我收到了这个错误。
module.js:340
throw err;
^
Error: Cannot find module './lib/compat'
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> (/usr/lib/nodejs/node_modules/express/node_modules/depd/index.js:11:24)
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)
如何调试此错误?
编辑:使用这些依赖项。
var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
答案 0 :(得分:6)
问题不是直接在您的代码中,而是在您正在使用的其中一个模块的依赖项中。您可以在错误消息的这一行看到它:
at Object.<anonymous> (/usr/lib/nodejs/node_modules/express/node_modules/depd/index.js:11:24)
express
模块有一个名为depd
的依赖项,它是遇到问题的模块。
你是如何安装模块的?
安装快速时,可能存在一些问题。
文件夹lib/compat
为directly part of depd,因此没有理由错过。
您可能需要执行以下操作:
npm uninstall express
npm install express --save
这会重新安装快递,希望能解决问题。
答案 1 :(得分:5)
即使在跑步后问题仍然存在:
npm uninstall express
npm install express --save
如果发生这种情况,请删除node-modules文件夹,然后运行:
npm install express
和
npm install
重新安装packages.json
中列出的所有软件包