node.js找不到模块'./lib/compat'

mac*_*pts 3 javascript node.js

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

如何调试此错误?

编辑:使用这些依赖项.

var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
Run Code Online (Sandbox Code Playgroud)

Meh*_*hdi 6

问题不是直接在您的代码中,而是在您正在使用的其中一个模块的依赖项中.您在错误消息的这一行看到它:

    at Object.<anonymous> (/usr/lib/nodejs/node_modules/express/node_modules/depd/index.js:11:24)
Run Code Online (Sandbox Code Playgroud)

express模块有一个被调用的依赖项depd,这是一个有问题的模块.

你是如何安装模块的?

目前已经大概有了一些问题,当你安装了快车.

该文件夹lib/compat直接depd的一部分,所以我们没有理由应该丢失.

您可能想要执行以下操作:

npm uninstall express
npm install express --save
Run Code Online (Sandbox Code Playgroud)

这将重新安装快递,希望解决问题.


小智 5

运行后问题仍然存在:

npm uninstall express
npm install express --save
Run Code Online (Sandbox Code Playgroud)

如果发生这种情况,请删除node-modules文件夹,然后运行:

npm install express
Run Code Online (Sandbox Code Playgroud)

npm install
Run Code Online (Sandbox Code Playgroud)

重新安装packages.json中列出的所有软件包