我还可以搬到另一个模块,但我很好奇我做错了什么。我试图通过在请求到达body-parser
之前拦截请求,并查看命中服务器的文件和字段但是它返回两个对象的普通对象,来尝试将强大的功能集成到已有的应用程序中。
客户端,我使用FormData
提交表单并使用entries()
方法和for of
检查表单只是为了确保它已加载,是的,它是。然而,服务器不会选择它。
服务器代码如下所示:
app = app.use(multipart)
.use(require("body-parser").urlencoded({limit: "45kb", extended: true}))
.use(cookieSession({secret: "mmay", maxAge: 60 * 60 * 24 * 1000, httpOnly: true,
expires: new Date (Date.now() + (60 * 60 * 24 * 1000))
}))
.use(static(__dirname + "/public"))
.use("/admin", admin);
function multipart(req, res, next) {
if (req.method == "POST" && req.headers["content-type"].indexOf("multipart/form-data") == 0) {
console.log("running");
var newFoodsForm = new formidable.IncomingForm(), util = require("util");
newFoodsForm.uploadDir = path.join(__dirname + "images");
newFoodsForm.keepExtensions = true;
newFoodsForm.parse(req, function(err, fields, files) {
res.end(util.inspect({fields: fields, files: files})); // returns {fields: {}, files: {}}
})
} else next();
}
我做错了什么?