Express.js Не удается получить результат из запроса MySQL, используя async await - PullRequest
0 голосов
/ 28 декабря 2018

Я не знаю, почему этот код не работает.если я использую этот код, всегда возвращая сообщение об ошибке.

результат:

{"error": true, "message": "error from query query"}

Я просто хочу получить мойданные из базы данных с использованием асинхронных и ожидающих функций

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;

до этого я пытаюсь использовать этот код и его работу.но я думаю, что использование async await очень хорошо, поэтому я пытаюсь использовать его, но я не знаю, как это работает

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

, потому что я не возвращаю результат?или я не могу сделать это, используя async await?

1 Ответ

0 голосов
/ 28 декабря 2018

async await работает с методом, который возвращает обещание.Функция db.query принимает обратный вызов, поэтому асинхронное ожидание не будет работать в этом случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...