我的基于节点的服务器使用Express。服务器处理使用多部分表单的仅json路由和文件上载路由。使用Express3时,内置解析器正在解析这两种路由。我正在迁移到Express4。身体解析器,我不得不切换为Express4,只解析jsons。我正在使用multer解析器来解析文件上传。
对于每个路由,我指定要使用的解析器,如:
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) {...});
有没有理由使用一种方法而不是另一种方法?将身体解析器'为json解析提供更好的性能?
答案 0 :(得分:1)
看起来multer并不支持JSON。通过使用uploadParser.none()
,它只会将JSON作为字符串传递。快速'如果要将JSON字符串解析为对象,可以使用bodyParser.json()
。