我在NodeJS应用中使用中间件,例如ReactJS作为前端。
app.use(*, middleware);
中间件的主要工作是验证传入的请求,即主要是JWT检查,然后才执行next()将请求转发到所需的路由。
我遇到的主要问题是:
我正在使用JSON来回传输数据。但是,当我上传文件时,在这种特定情况下,我正在使用FormData()。因此,我必须使用multer读取多部分数据。主要问题是我有一个中间件,其中每个请求都在处理。因此,要使任何文件到达特定端点,都必须通过中间件。所以我需要做:
var multer = require('multer');
var upload = multer({dest: '/upload'});
app.use("*", upload.any(), middleware);
app.use("/register", register);
内部中间件:
export const middleware = (req, res, next) => {
// check if req has proper JWT value. if yes
// next();
// if no
// res.json("Sorry can't move on.");
}
我在这里面临的主要风险是:任何恶意用户都可以将文件上传到任何端点。这使我的API处于危险之中。有什么方法可以绕过此方法,而仅在特定端点上使用multer吗?
此外,如果我这样做:
app.use("*", upload.none(), middleware);
我遇到500错误。我不知道它从哪里来。
答案 0 :(得分:0)
app.use(“ *”,中间件,upload.none());
尝试在upload.none()之前使用middelware函数