Express.js 找不到模块 'mime-types'

Express.js Cannot find module 'mime-types'

我正在尝试 运行 带有正文解析器的简单快速服务器:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.json());

我意识到这不再与 express 捆绑在一起,并且仔细检查了两个包都安装了:

npm install -s express body-parser

我返回的错误是:

module.js:472
    throw err;
    ^

Error: Cannot find module 'mime-types'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/osboxes/.nvm/versions/node/v7.2.0/lib/node_modules/body-parser/node_modules/type-is/index.js:16:12)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

我也试过:

 npm install -s mime-types

没有效果。

注意:我通过前后记录验证了第4行是错误发生的地方。

确保 body-parserexpresspackage.json 中被列为依赖项,然后删除整个 node_modules 目录并使用 npm i.

看起来 mime-typestype-is 的依赖项,body-parser 已将其列为依赖项,请确保所有这些都已正确安装,如果没有安装它们。安装 mime-types 时不需要 --save 标志,因为你不需要将它作为包的依赖项,因为你已经将 body-parser 列为依赖项,如果任何可能导致另一个问题的事情,因为您可能有与 body-parser/type-is.

不同的版本要求

此外,我不认为 npm 的保存标志是 -s,它是 --save-S

npm install takes 3 exclusive, optional flags which save or update the package version in your main package.json:

-S, --save: Package will appear in your dependencies.

-D, --save-dev: Package will appear in your devDependencies.

-O, --save-optional: Package will appear in your optionalDependencies.