Node.js Express3到Express4迁移 - 解析器使用

时间:2016-11-13 21:53:47

标签: json node.js express multer body-parser

我的基于节点的服务器使用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解析提供更好的性能?

1 个答案:

答案 0 :(得分:1)

看起来multer并不支持JSON。通过使用uploadParser.none(),它只会将JSON作为字符串传递。快速'如果要将JSON字符串解析为对象,可以使用bodyParser.json()