【问题标题】:Node.js Express3 to Express4 migration - parser usageNode.js Express3 到 Express4 迁移 - 解析器使用
【发布时间】:2017-03-27 12:42:32
【问题描述】:

我的基于节点的服务器使用 Express。服务器只处理 json 路由和使用多部分表单的文件上传路由。使用 Express3 时,内置解析器会解析两种路由。我正在迁移到 Express4。我不得不切换到 Express4 的 body-parser 只解析 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) {...});

是否有任何理由使用一种方法而不是另一种方法? 'body-parser' 会为仅解析 json 提供更好的性能吗?

【问题讨论】:

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


    【解决方案1】:

    看起来 multer 不支持 JSON。通过使用uploadParser.none(),它只会将 JSON 作为字符串传递。 Express'bodyParser.json() 是您想要将 JSON 字符串解析为对象的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 2014-05-08
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 2017-06-25
      相关资源
      最近更新 更多