如何在使用 multer 上传文件之前 运行 验证检查我的快速路线
How to run auth check in my express route before uploading a file with multer
在 node.js 和 express 中处理我的后端,新使用 multer 上传文件。
我想检查我的用户是否有有效的令牌:如果是,他可以上传文件,如果没有,返回 401。使用我的以下代码,这有效,但文件仍会上传,即使用户没有有效令牌。
我想我的检查应该在参数 upload.single('image')
之前进行,但我真的不知道如何进行。 有什么建议吗?
我的代码:
router.post("/", upload.single('image'), (req, res, next) => {
if (!req.isAuth) {
res.status(401).json({error: "Unauthenticated"});
} else {
console.log('file', req.file);
res.status(200).json({resultFileName: req.file.filename });
}
});
你可以试试这个,但我没有测试过,也有一段时间没用过 express。
router.post("/", (req, res, next) => {
if (!req.isAuth)
return res.status(401).json({error: "Unauthenticated"});
next();
}, upload.single('image'), (req, res, next) => {
console.log('file', req.file);
res.status(200).json({resultFileName: req.file.filename });
});
创建中间件或助手并在其中创建 authorize.js 文件并在其中添加 jwt 授权代码,如下所示
authorize.js
const jwt = require('jsonwebtoken');
module.exports = {
jwtAuth: (req, res, next) => {
//Jwt verification code according to your configuration
}
}
然后将该文件导入您的路由文件夹并像下面那样使用它
Users.js
const authorize = require('../middlewares/authorize')
router.post("/", authorize.jwtAuth, upload.single('image'), (req, res, next) => {
console.log('file', req.file);
res.status(200).json({resultFileName: req.file.filename });
});
在 node.js 和 express 中处理我的后端,新使用 multer 上传文件。
我想检查我的用户是否有有效的令牌:如果是,他可以上传文件,如果没有,返回 401。使用我的以下代码,这有效,但文件仍会上传,即使用户没有有效令牌。
我想我的检查应该在参数 upload.single('image')
之前进行,但我真的不知道如何进行。 有什么建议吗?
我的代码:
router.post("/", upload.single('image'), (req, res, next) => {
if (!req.isAuth) {
res.status(401).json({error: "Unauthenticated"});
} else {
console.log('file', req.file);
res.status(200).json({resultFileName: req.file.filename });
}
});
你可以试试这个,但我没有测试过,也有一段时间没用过 express。
router.post("/", (req, res, next) => {
if (!req.isAuth)
return res.status(401).json({error: "Unauthenticated"});
next();
}, upload.single('image'), (req, res, next) => {
console.log('file', req.file);
res.status(200).json({resultFileName: req.file.filename });
});
创建中间件或助手并在其中创建 authorize.js 文件并在其中添加 jwt 授权代码,如下所示
authorize.js
const jwt = require('jsonwebtoken');
module.exports = {
jwtAuth: (req, res, next) => {
//Jwt verification code according to your configuration
}
}
然后将该文件导入您的路由文件夹并像下面那样使用它
Users.js
const authorize = require('../middlewares/authorize')
router.post("/", authorize.jwtAuth, upload.single('image'), (req, res, next) => {
console.log('file', req.file);
res.status(200).json({resultFileName: req.file.filename });
});