为什么这两个调用相同的功能?

时间:2013-11-18 13:56:18

标签: node.js express ghost-blog

我正在查看用于学习Nodejs的GhostJS源代码。我不明白为什么这两个用不同的参数调用同一个函数:

https://github.com/TryGhost/Ghost/blob/688dd363cdf0084c20dd243b02c26afb6ebcabbe/core/server.js#L205-L206

任何人都可以解释原因吗?

谢谢= D

编辑: 这是撰写本文时的代码:

server.use('/ghost/upload/', express.multipart());
server.use('/ghost/upload/', express.multipart({uploadDir: __dirname + '/content/images'}));

编辑2 看到这个github问题: https://github.com/TryGhost/Ghost/issues/1511

1 个答案:

答案 0 :(得分:3)

可以追溯到此文件的first commit,其中使用了bodyParser()

这增加了两个中间件。第一个multipart中间件将flag the body as parsed并执行它必须执行的操作:

req._body = true;

......在第二次运行中,中间件不会做任何事情,如body is already parsed

return function multipart(req, res, next) {
    if (req._body) return next();
    ...
}

这对我来说是个错误。