【问题标题】:Express.js Cannot get result from query mysql using async awaitExpress.js 无法使用异步等待从查询 mysql 中获取结果
【发布时间】:2018-12-28 04:34:10
【问题描述】:

我不知道为什么这段代码不起作用。如果我使用此代码总是返回错误消息。

结果:

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

我只是想使用 async 和 await 函数从数据库中获取我的数据

我正在使用 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;

在此之前,我尝试使用此代码及其工作。但我认为使用 async await 非常好,所以我尝试使用它,但我不知道它是如何工作的

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

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

【问题讨论】:

    标签: javascript mysql express


    【解决方案1】:

    async await 适用于返回 promise 的方法。 db.query 函数需要回调,因此在这种情况下异步等待将不起作用

    【讨论】:

      猜你喜欢
      • 2020-06-19
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      相关资源
      最近更新 更多