简体   繁体   English

SyntaxError: await 仅在异步中有效 function 我如何使用异步?

[英]SyntaxError: await is only valid in async function how can i use async?

i want to use async await in middleware我想在中间件中使用异步等待

but when i use my code this error occure但是当我使用我的代码时,这个错误发生了

const refrsh = await User.findOne({ ^^^^^ SyntaxError: await is only valid in async function const refrsh = await User.findOne({ ^^^^^ SyntaxError: await is only valid in async function

how can i fix my code?我该如何修复我的代码?

this is my code这是我的代码

            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();
              });
            };

Simply make the (err, user) callback an async function.只需将(err, user)回调设为async function。 It should work out alright in this particular case:在这种特殊情况下应该可以正常工作:

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();
  });
};

Use async keyword before anonymous callback (err, user) function.在匿名回调(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...
});

You need to add async when decalre function that you want await :当您想要await贴花 function 时,您需要添加async

 jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, async (err, user) => { ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 SyntaxError: await 仅在异步中有效 function **而且我有异步** - SyntaxError: await is only valid in async function **and I have async** Javascript:SyntaxError:await仅在异步函数中有效 - Javascript: SyntaxError: await is only valid in async function 如何解决:SyntaxError: await is only valid in async function - How to resolve: SyntaxError: await is only valid in async function 未捕获的SyntaxError:await仅在异步函数的异步函数中有效 - Uncaught SyntaxError: await is only valid in async function in async function SyntaxError: await 仅在 async 函数中有效。 无法纠正 - SyntaxError: await is only valid in async function. Unable to Correct it Appium 代码生成“SyntaxError: await is only valid in async function” - Appium code generates "SyntaxError: await is only valid in async function" Node Js - SyntaxError: await 仅在异步中有效 function - Node Js - SyntaxError: await is only valid in async function SyntaxError: await 仅在我的代码中的异步 function 中有效 - SyntaxError: await is only valid in async function in my code SyntaxError:“await”仅在“async”中有效 function - 需要帮助 - SyntaxError: “await” is only valid in an “async” function - Help Needed 语法错误:await 仅在异步函数 discord.js 中有效 - SyntaxError: await is only valid in async function discord.js
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM