2016-12-05 156 views
1

我试图运行与身体解析器简单Express服务器:Express.js找不到模块“MIME类型”

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

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

我意识到这不再有明确的捆绑,并双倍托运包都安装有:

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号线就是通过登录之前和之后发生的错误。

+0

就我所知,您必须使用'npm i -S'(用大写'S')来保存'package.json'中的依赖关系 – Niezborala

回答

1

确保body-parserexpress被列为依赖于你的package.json,然后删除你的整个node_modules目录和做一个干净的安装使用npm i您的依赖。

它看起来像mime-typesbody-parser已被列为依赖关系的type-is的依赖,确保所有这些都正确安装,如果没有安装它们。安装mime-types当你不应该需要一个--save标志,因为你不需要让你的包的依赖,因为你已经列出body-parser作为依赖,如果有的话,可能会导致另一个问题,因为你可能有不同的版本要求与body-parser/type-is相同。

此外,我不相信npm的保存标志是-s它可以是--save-S

NPM安装需要3个独一无二的,可选的标志,其保存或在你的主要的package.json更新包的版本:

-S,--save:包就会出现在你的依赖。

-D,--save-dev的:包就会出现在你devDependencies。

-O,--save-可选:包就会出现在你optionalDependencies。