2017-07-02 112 views
-1

我不断收到上述错误尝试运行我的应用程序时,也弄不清还没有添加什么包我..错误:大多数中间件(如bodyParser)不再与ExpressJs捆绑

服务器在添加这个文档之前工作得很好,所以我希望它对这个文档有一个问题,而不是别的。

它是一种被称为NPM节点调度

var express = require('express'); 
var router = express.Router() 
var path = require('path'); 
var bodyParser = require('body-parser'); 

var db = require('mongoskin').db("localhost/awl-loan-system", { w: 0}); 
db.bind('event'); 


var app = express(); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(express.bodyParser()); 


app.get('/init', function(req, res){ 
db.event.insert({ 
    text:"My test event A", 
    start_date: new Date(2013,8,1), 
    end_date: new Date(2013,8,5) 
}); 
db.event.insert({ 
    text:"My test event B", 
    start_date: new Date(2013,8,19), 
    end_date: new Date(2013,8,24) 
}); 
db.event.insert({ 
    text:"Morning event", 
    start_date: new Date(2013,8,4,4,0), 
    end_date: new Date(2013,8,4,14,0) 
}); 
db.event.insert({ 
    text:"One more test event", 
    start_date: new Date(2013,8,3), 
    end_date: new Date(2013,8,8), 
    color: "#DD8616" 
}); 

res.send("Test events were added to the database") 
}); 


app.get('/data', function(req, res){ 
db.event.find().toArray(function(err, data){ 
    //set id property for all records 
    for (var i = 0; i < data.length; i++) 
     data[i].id = data[i]._id; 

    //output response 
    res.send(data); 
}); 
}); 


app.post('/data', function(req, res){ 
var data = req.body; 
var mode = data["!nativeeditor_status"]; 
var sid = data.id; 
var tid = sid; 

delete data.id; 
delete data.gr_id; 
delete data["!nativeeditor_status"]; 


function update_response(err, result){ 
    if (err) 
     mode = "error"; 
    else if (mode == "inserted") 
     tid = data._id; 

    res.setHeader("Content-Type","text/xml"); 
    res.send("<data><action type='"+mode+"' sid='"+sid+"' tid='"+tid+"'/> 
</data>"); 
} 

if (mode == "updated") 
    db.event.updateById(sid, data, update_response); 
else if (mode == "inserted") 
    db.event.insert(data, update_response); 
else if (mode == `enter code here`"deleted") 
    db.event.removeById(sid, update_response); 
else 
    res.send("Not supported operation"); 
}); 

返回该错误

D:\One31\Clients\A W Lymn\node_modules\express\lib\express.js:107 
    throw new Error('Most middleware (like ' + name + ') is no longer bundled 
with Express and must be installed separately. Please see 
https://github.com/senchalabs/connect#middleware.'); 
    ^

Error: Most middleware (like bodyParser) is no longer bundled with Express 
and must be installed separately. Please see 
https://github.com/senchalabs/connect#middleware. 
at Function.get (D:\One31\Clients\A W 
Lymn\node_modules\express\lib\express.js:107:13) 
at Object.<anonymous> (D:\One31\Clients\A W Lymn\routes\calendar.js:12:16) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.require (module.js:497:17) 
at require (internal/module.js:20:19) 
at Object.<anonymous> (D:\One31\Clients\A W Lymn\routes\index.js:6:16) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.require (module.js:497:17) 

任何帮助吗?

回答

0

你需要通过运行

npm i body-parser -S

-S标志单独安装体的解析器将程序包到您的package.json文件

+0

只需_installing_'body-parser'不会解决任何问题。您必须将其导入脚本中。 –

+0

它实际上是要求/导入示例代码的第4行。请问你在说什么其他的脚本? –

1

你已经包括独立body-parser模块,所以请使用bodyParser.urlencoded({ extended: false })/bodyParser.json()而不是express.bodyParser()