Express.js无法使用异步等待从查询MySQL获取结果

时间:2018-12-28 04:34:10

标签: javascript mysql express

我不知道为什么此代码不起作用。如果我使用此代码始终返回错误消息。

结果:

  

{       “错误”:是的,       “ message”:“来自查询类别的错误”}

iam只想使用async和await函数从数据库中获取数据

iam使用express.js && mysql.js

在我的控制器中:

export const getAllCategory = async (req, res) => {
    let sql = `select * from categories order by id desc`;
    try {
        let result = await db.query(sql);
        return res.status(200).json(result);
        // db.query(sql,(err,result)=>{
        //     return res.status(200).json(result);
        // })
        //    return res.status(201).json(query);
        // // return res.status(201).json({ error: false, data:query});
    } catch (e) {
        return res.status(400).json({ error: true, message: 'error from query category' });
    }
}

路由器

const routes = new Router();

routes.post('/category/create',CategoryController.createCategory);
routes.get('/category/getall', CategoryController.getAllCategory);
export default routes;

在此之前,iam尝试使用此代码及其工作方式。但是我认为使用异步等待非常好,所以我尝试使用它,但是我不知道它是如何工作的

  db.query(sql,(err,result)=>{
        return res.status(200).json(result);
    })

那是因为我不返回结果吗?还是我不能使用异步等待来做到这一点?

1 个答案:

答案 0 :(得分:0)

async await与返回promise的方法一起使用。 db.query函数接受回调,因此异步等待在这种情况下将不起作用