2016-12-05 72 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。