![](/img/trans.png)
[英]SyntaxError: await is only valid in async function **and I have async**
[英]SyntaxError: await is only valid in async function how can i use async?
我想在中间件中使用异步等待
但是当我使用我的代码时,这个错误发生了
const refrsh = await User.findOne({ ^^^^^ SyntaxError: await is only valid in async function
我该如何修复我的代码?
这是我的代码
exports.authenticateToken = (req, res, next) => {
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1];
if (token == null) return res.sendStatus(401);
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
if (err) {
const refreshToken = req.body.refreshToken;
const refrsh = await User.findOne({
where: {id:req.body.kakaoid}
})
}
req.user = user;
next();
});
};
只需将(err, user)
回调设为async
function。 在这种特殊情况下应该可以正常工作:
exports.authenticateToken = (req, res, next) => {
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1];
if (token == null) return res.sendStatus(401);
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, async (err, user) => {
if (err) {
const refreshToken = req.body.refreshToken;
const refrsh = await User.findOne({
where: { id: req.body.kakaoid },
});
}
req.user = user;
next();
});
};
在匿名回调(err, user)
function 之前使用async
关键字。
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, async (err, user) => {
// your code...
const refrsh = await User.findOne({
where: {id:req.body.kakaoid}
});
// your code...
});
当您想要await
贴花 function 时,您需要添加async
:
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, async (err, user) => { ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.