Node.js &引用;Npm列表“;不';无法显示任何未满足的依赖项,那么为什么我的服务器会出错?

Node.js &引用;Npm列表“;不';无法显示任何未满足的依赖项,那么为什么我的服务器会出错?,node.js,npm,Node.js,Npm,“npm列表”返回此项,其中没有“未满足”项。但当我重新启动服务器时,它会出错,错误日志显示“错误:找不到模块‘async/each’”和其他类似错误。我已经逐一检查并安装了每个未找到的模块,但这非常繁琐。我该怎么做呢 编辑:而且,执行“npm修剪”似乎什么也做不了(“npm列表”仍然会给出很多错误无关的类型。) 编辑2:它不是一个非常复杂的服务器,它只是用来提供一个HTML文件并连接到MongoDB。因此,基本的依赖关系是Express、Socket.io和MongoDB /home/djg/

“npm列表”返回此项,其中没有“未满足”项。但当我重新启动服务器时,它会出错,错误日志显示“错误:找不到模块‘async/each’”和其他类似错误。我已经逐一检查并安装了每个未找到的模块,但这非常繁琐。我该怎么做呢

编辑:而且,执行“npm修剪”似乎什么也做不了(“npm列表”仍然会给出很多错误无关的类型。)

编辑2:它不是一个非常复杂的服务器,它只是用来提供一个HTML文件并连接到MongoDB。因此,基本的依赖关系是Express、Socket.io和MongoDB

/home/djg/build
├── buffer-shims@1.0.0
├─┬ debug@4.2.0
│ └── ms@2.1.2 extraneous
├── engine.io-parser@4.0.1
├── es6-promise@3.2.1
├─┬ express@4.17.1
│ ├─┬ accepts@1.3.7
│ │ ├─┬ mime-types@2.1.27
│ │ │ └── mime-db@1.44.0
│ │ └── negotiator@0.6.2
│ ├── array-flatten@1.1.1
│ ├─┬ body-parser@1.19.0
│ │ ├── bytes@3.1.0
│ │ ├── content-type@1.0.4 deduped
│ │ ├── debug@2.6.9 extraneous
│ │ ├── depd@1.1.2 deduped
│ │ ├─┬ http-errors@1.7.2
│ │ │ ├── depd@1.1.2 deduped
│ │ │ ├── inherits@2.0.3
│ │ │ ├── setprototypeof@1.1.1 deduped
│ │ │ ├── statuses@1.5.0 deduped
│ │ │ └── toidentifier@1.0.0
│ │ ├─┬ iconv-lite@0.4.24
│ │ │ └── safer-buffer@2.1.2
│ │ ├── on-finished@2.3.0 deduped
│ │ ├── qs@6.7.0 deduped
│ │ ├─┬ raw-body@2.4.0
│ │ │ ├── bytes@3.1.0 deduped
│ │ │ ├── http-errors@1.7.2 deduped
│ │ │ ├── iconv-lite@0.4.24 deduped
│ │ │ └── unpipe@1.0.0 deduped
│ │ └── type-is@1.6.18 deduped
│ ├─┬ content-disposition@0.5.3
│ │ └── safe-buffer@5.1.2 deduped
│ ├── content-type@1.0.4
│ ├── cookie@0.4.0
│ ├── cookie-signature@1.0.6
│ ├── debug@2.6.9 extraneous
│ ├── depd@1.1.2
│ ├── encodeurl@1.0.2
│ ├── escape-html@1.0.3
│ ├── etag@1.8.1
│ ├─┬ finalhandler@1.1.2
│ │ ├── debug@2.6.9 extraneous
│ │ ├── encodeurl@1.0.2 deduped
│ │ ├── escape-html@1.0.3 deduped
│ │ ├── on-finished@2.3.0 deduped
│ │ ├── parseurl@1.3.3 deduped
│ │ ├── statuses@1.5.0 deduped
│ │ └── unpipe@1.0.0
│ ├── fresh@0.5.2
│ ├── merge-descriptors@1.0.1
│ ├── methods@1.1.2
│ ├─┬ on-finished@2.3.0
│ │ └── ee-first@1.1.1
│ ├── parseurl@1.3.3
│ ├── path-to-regexp@0.1.7
│ ├─┬ proxy-addr@2.0.6
│ │ ├── forwarded@0.1.2
│ │ └── ipaddr.js@1.9.1
│ ├── qs@6.7.0
│ ├── range-parser@1.2.1
│ ├── safe-buffer@5.1.2
│ ├─┬ send@0.17.1
│ │ ├── debug@2.6.9 extraneous
│ │ ├── depd@1.1.2 deduped
│ │ ├── destroy@1.0.4
│ │ ├── encodeurl@1.0.2 deduped
│ │ ├── escape-html@1.0.3 deduped
│ │ ├── etag@1.8.1 deduped
│ │ ├── fresh@0.5.2 deduped
│ │ ├── http-errors@1.7.2 deduped
│ │ ├── mime@1.6.0
│ │ ├── ms@2.1.1 extraneous
│ │ ├── on-finished@2.3.0 deduped
│ │ ├── range-parser@1.2.1 deduped
│ │ └── statuses@1.5.0 deduped
│ ├─┬ serve-static@1.14.1
│ │ ├── encodeurl@1.0.2 deduped
│ │ ├── escape-html@1.0.3 deduped
│ │ ├── parseurl@1.3.3 deduped
│ │ └── send@0.17.1 deduped
│ ├── setprototypeof@1.1.1
│ ├── statuses@1.5.0
│ ├─┬ type-is@1.6.18
│ │ ├── media-typer@0.3.0
│ │ └── mime-types@2.1.27 deduped
│ ├── utils-merge@1.0.1
│ └── vary@1.1.2
├─┬ has-binary@0.1.7
│ └── isarray@0.0.1 extraneous
├── json3@3.3.3
├─┬ mongodb@3.6.2
│ ├─┬ bl@2.2.1
│ │ ├─┬ readable-stream@2.3.7
│ │ │ ├── core-util-is@1.0.2
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ ├── isarray@1.0.0 extraneous
│ │ │ ├── process-nextick-args@2.0.1
│ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ ├─┬ string_decoder@1.1.1
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ └── util-deprecate@1.0.2
│ │ └── safe-buffer@5.1.2 deduped
│ ├── bson@1.1.5
│ ├── denque@1.4.1
│ ├─┬ require_optional@1.0.1
│ │ ├── resolve-from@2.0.0
│ │ └── semver@5.7.1
│ ├── safe-buffer@5.1.2 deduped
│ └─┬ saslprep@1.0.3
│   └─┬ sparse-bitfield@3.0.3
│     └── memory-pager@1.5.0
├─┬ mongodb-core@2.1.20
│ ├── bson@1.0.9 extraneous
│ └── require_optional@1.0.1 deduped
├─┬ mongoose@5.10.8
│ ├── bson@1.1.5 deduped
│ ├── kareem@2.3.1
│ ├── mongodb@3.6.2 extraneous
│ ├── mongoose-legacy-pluralize@1.0.2
│ ├── mpath@0.7.0
│ ├─┬ mquery@3.2.2
│ │ ├── bluebird@3.5.1
│ │ ├── debug@3.1.0 extraneous
│ │ ├── regexp-clone@1.0.0 deduped
│ │ ├── safe-buffer@5.1.2 deduped
│ │ └── sliced@1.0.1 deduped
│ ├── ms@2.1.2 extraneous
│ ├── regexp-clone@1.0.0
│ ├── safe-buffer@5.2.1 extraneous
│ ├── sift@7.0.1
│ └── sliced@1.0.1
├── options@0.0.6
├─┬ parsejson@0.0.3
│ └─┬ better-assert@1.0.2
│   └── callsite@1.0.0
├─┬ socket.io@2.3.0
│ ├── debug@4.1.1 extraneous
│ ├─┬ engine.io@3.4.2
│ │ ├── accepts@1.3.7 deduped
│ │ ├── base64id@2.0.0
│ │ ├── cookie@0.3.1 extraneous
│ │ ├── debug@4.1.1 extraneous
│ │ ├── engine.io-parser@2.2.1 extraneous
│ │ └── ws@7.3.1
│ ├─┬ has-binary2@1.0.3
│ │ └── isarray@2.0.1
│ ├── socket.io-adapter@1.1.2
│ ├─┬ socket.io-client@2.3.0
│ │ ├── backo2@1.0.2
│ │ ├── base64-arraybuffer@0.1.5 extraneous
│ │ ├── component-bind@1.0.0
│ │ ├── component-emitter@1.2.1
│ │ ├── debug@4.1.1 extraneous
│ │ ├─┬ engine.io-client@3.4.4
│ │ │ ├── component-emitter@1.3.0 extraneous
│ │ │ ├── component-inherit@0.0.3
│ │ │ ├── debug@3.1.0 extraneous
│ │ │ ├── engine.io-parser@2.2.1 extraneous
│ │ │ ├── has-cors@1.1.0 deduped
│ │ │ ├── indexof@0.0.1 deduped
│ │ │ ├── parseqs@0.0.6 extraneous
│ │ │ ├── parseuri@0.0.6 extraneous
│ │ │ ├── ws@6.1.4 extraneous
│ │ │ ├── xmlhttprequest-ssl@1.5.5
│ │ │ └── yeast@0.1.2
│ │ ├── has-binary2@1.0.3 deduped
│ │ ├── has-cors@1.1.0
│ │ ├── indexof@0.0.1
│ │ ├── object-component@0.0.3
│ │ ├─┬ parseqs@0.0.5
│ │ │ └── better-assert@1.0.2 deduped
│ │ ├─┬ parseuri@0.0.5
│ │ │ └── better-assert@1.0.2 deduped
│ │ ├── socket.io-parser@3.3.1 extraneous
│ │ └── to-array@0.1.4
│ └─┬ socket.io-parser@3.4.1
│   ├── component-emitter@1.2.1 deduped
│   ├── debug@4.1.1 extraneous
│   └── isarray@2.0.1 deduped
└── ultron@1.1.1

npm ERR! extraneous: ms@2.1.2 /home/djg/build/node_modules/debug/node_modules/ms
npm ERR! extraneous: debug@2.6.9 /home/djg/build/node_modules/body-parser/node_modules/debug
npm ERR! extraneous: debug@2.6.9 /home/djg/build/node_modules/express/node_modules/debug
npm ERR! extraneous: debug@2.6.9 /home/djg/build/node_modules/finalhandler/node_modules/debug
npm ERR! extraneous: debug@2.6.9 /home/djg/build/node_modules/send/node_modules/debug
npm ERR! extraneous: ms@2.1.1 /home/djg/build/node_modules/send/node_modules/ms
npm ERR! extraneous: isarray@0.0.1 /home/djg/build/node_modules/has-binary/node_modules/isarray
npm ERR! extraneous: isarray@1.0.0 /home/djg/build/node_modules/readable-stream/node_modules/isarray
npm ERR! extraneous: bson@1.0.9 /home/djg/build/node_modules/mongodb-core/node_modules/bson
npm ERR! extraneous: mongodb@3.6.2 /home/djg/build/node_modules/mongoose/node_modules/mongodb
npm ERR! extraneous: ms@2.1.2 /home/djg/build/node_modules/mongoose/node_modules/ms
npm ERR! extraneous: safe-buffer@5.2.1 /home/djg/build/node_modules/mongoose/node_modules/safe-buffer
npm ERR! extraneous: debug@3.1.0 /home/djg/build/node_modules/mquery/node_modules/debug
npm ERR! extraneous: cookie@0.3.1 /home/djg/build/node_modules/engine.io/node_modules/cookie
npm ERR! extraneous: debug@4.1.1 /home/djg/build/node_modules/engine.io/node_modules/debug
npm ERR! extraneous: engine.io-parser@2.2.1 /home/djg/build/node_modules/engine.io/node_modules/engine.io-parser
npm ERR! extraneous: component-emitter@1.3.0 /home/djg/build/node_modules/engine.io-client/node_modules/component-emitter
npm ERR! extraneous: debug@3.1.0 /home/djg/build/node_modules/engine.io-client/node_modules/debug
npm ERR! extraneous: engine.io-parser@2.2.1 /home/djg/build/node_modules/engine.io-client/node_modules/engine.io-parser
npm ERR! extraneous: parseqs@0.0.6 /home/djg/build/node_modules/engine.io-client/node_modules/parseqs
npm ERR! extraneous: parseuri@0.0.6 /home/djg/build/node_modules/engine.io-client/node_modules/parseuri
npm ERR! extraneous: ws@6.1.4 /home/djg/build/node_modules/engine.io-client/node_modules/ws
npm ERR! extraneous: base64-arraybuffer@0.1.5 /home/djg/build/node_modules/socket.io-client/node_modules/base64-arraybuffer
npm ERR! extraneous: debug@4.1.1 /home/djg/build/node_modules/socket.io-client/node_modules/debug
npm ERR! extraneous: socket.io-parser@3.3.1 /home/djg/build/node_modules/socket.io-client/node_modules/socket.io-parser
npm ERR! extraneous: debug@4.1.1 /home/djg/build/node_modules/socket.io-parser/node_modules/debug
npm ERR! extraneous: debug@4.1.1 /home/djg/build/node_modules/socket.io/node_modules/debug
编辑2: 这是我的server.js文件:

var express = require('express') //Require express for middleware use
const app = express()
var http = require('http').createServer(app)
var io = require('socket.io')(http) //IO is the server

var bodyParser = require('body-parser')

var MongoClient = require('mongodb').MongoClient
var assert = require('assert')
var mongoose = require('mongoose')
mongoose.set('debug', true)

var url = 'mongodb://localhost:27017/test'

//BASICS
app.use(express.static(__dirname + "/served")) //Serve static files

app.get('/', function(req, res){
  res.sendFile('./index.html');
});

io.on('connection', function(socket){
  // socket.on('chat message', function(msg){
    // io.emit('chat message', msg);
  // });
  console.log("A user connected: ", socket.id)
});

http.listen(8080, function(){
  console.log('listening on *:8080');
});

//HANDLE USER LOGIN:
app.use(bodyParser.json())       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()) // to support URL-encoded bodies

mongoose.connect(url)
var db = mongoose.connection
db.on('error', console.error)
var User
db.once('open', function() {
  var userSchema = mongoose.Schema({
    username: String,
    level: Number,
    onePoRank: Number,
    twoPoRank: Number,
    type: String,
    tutDone: Boolean
  })

  // userSchema.statics.findOne = function(id, callback){
  //   return this.findOne({ _id: new RegExp(id, 'i') }, callback);
  // }

  User = mongoose.model('User', userSchema)

  // db.close()
})

app.post('/menu', function(req, res){ // Save new user or load existing one, and send that data back to the client.
  var username = req.param('username')
  console.log('username "'+username+'" parsed from form')

  //check the database for a user with that name:
  User.findOne({username: username}, function(err, user){
    if (err) {console.log("The user search caused an error")}
    if (user === null) {
      console.log("No user by name %s found--creating new user", username)
      var newUser = new User({username: username, level:0, onePoRank:0, twoPoRank: 0, type: 'human'})
      newUser.save(function (err, newUser) { //Add the new user to the database
        if (err) return console.error(err);
        console.log("New user %s saved to database", username)
        res.json(newUser)
      })
    } else { //User was found in the database
      console.log("User %s found.", username)
      res.json(user)
    }
  })

  db.once('close', function(){console.log("database closed.")})
  // res.sendFile('./menu.html', {root: __dirname+"/served"})
});

app.post('/user', function(req, res){ // Update the user in the database:
  var what = req.param('what')
  var username = req.param('user').username
  // var username = req.param('username')
  // console.log('username "'+username+'" parsed from form')

  User.findOne({username: username}, function(err, user){
    if (err) {console.log("The user search caused an error")}
    if (user === null) {
      console.log("No user by name %s found. That was unexpected.", username)
    } else {
      console.log("User %s found. Updating.", username)
      user[what] = req.param('user')[what]
      user.save(function(err) {
        if (err) throw err
        console.log('User successfully updated!')
      });
    }
  })

  res.json({'a':0}) //just to prevent an empty response error
});

为了解决这个问题,我删除了build文件夹中的“node_modules”文件夹,对server.js文件中require语句中的每个包都执行了“npm install[module]--save”,清除了我的服务器并将我的构建文件重新同步到它,然后在服务器上执行了“npm install”。

考虑到大量的无关依赖项,我想,因为你的package.json与你的代码实际需要的不匹配,但是如果没有一个,很难说清楚。我添加了我的server.js文件,希望这足够了,如果不让我知道的话。