2016-11-13 53 views
1

我的基於節點的服務器使用Express。服務器處理僅使用json的路由和使用多部分表單的文件上載路由。使用Express3時,內置的解析器解析兩種路線。我正在遷移到Express4。我不得不爲Express4切換的body-parser只解析jsons。我正在使用multer解析器來解析文件上傳。Node.js Express3到Express4的遷移 - 解析器使用

對於每個路由,我指定要使用的解析器,如:

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

var jsonParser = bodyParser.json(); 
var upload = multer({dest : 'upload/' }); 
var uploadParser = upload.any(); 
var app = express(); 

// json route handling 
app.post('json_only_route', jsonParser, function(req, res) {...}); 

// upload route handling 
app.post('upload_route', uploadParser, function(req, res) {...}); 

可替換地,JSON僅解析,我可以使用multer解析器以及,如下:

var jsonParserMulter = uploadParser.none(); 

// json route handling 
app.post('json_only_route', jsonParserMulter, function(req, res) {...}); 

是否有任何理由使用其中一種方法? 'body-parser'會爲json只解析提供更好的性能嗎?

回答

1

它看起來像multer不支持JSON。通過使用uploadParser.none(),它將以字符串形式通過JSON。 Express'bodyParser.json()是如果要將JSON字符串解析爲對象的方式。