![](/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.