Node.js Express3到Express4迁移 – parsing器的使用

我的基于节点的服务器使用Express。 服务器处理仅使用json的路由和使用多部分表单的文件上载路由。 在使用Express3时,内置的parsing器parsing了两种路由。 我正在迁移到Express4的过程中。 我不得不为Express4切换的body-parser只parsingjsons。 我正在使用multerparsing器来parsingfile upload。

对于每个路由,我指定使用哪个parsing器,如下所示:

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只parsing,我也可以使用multerparsing器,如下所示:

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

是否有任何理由使用一种方法而不是另一种? “身体parsing器”会提供更好的性能,仅用于jsonparsing?

它看起来像穆勒不支持JSON。 通过使用uploadParser.none()它将只是作为一个string通过JSON。 如果要将JSONstringparsing为对象,则需要使用bodyParser.json()方法。