Javascript 在knex中,如何将异步/等待函数更改为使用.then方法的函数?
我正在knex.js中编写一个简单的post路由,它向数据库添加一条消息。目前它是一个异步/等待函数,但如何使用.then块重构它呢?代码正在运行,我只是好奇。代码如下:Javascript 在knex中,如何将异步/等待函数更改为使用.then方法的函数?,javascript,knex.js,Javascript,Knex.js,我正在knex.js中编写一个简单的post路由,它向数据库添加一条消息。目前它是一个异步/等待函数,但如何使用.then块重构它呢?代码正在运行,我只是好奇。代码如下: const todo = req.body.message; try { await db('todos').insert({message: todo}); res.json({message: 'todo successfully stored'}); } catch (err) { console.log(e
const todo = req.body.message;
try {
await db('todos').insert({message: todo});
res.json({message: 'todo successfully stored'});
} catch (err) {
console.log(err);
}
谢谢 我确信
async
函数只返回一个承诺,因此您可以简单地删除wait
const todo=req.body.message;
试一试{
db(‘待办事项’)
.insert({消息:todo})
。然后((结果)=>{
res.json({消息:“todo已成功存储”});
});
}捕捉(错误){
控制台日志(err);
}
Try&catch仅在使用wait时才相关,@felixmosh Try/catch用于任何异常处理-可能期望db()
或.insert
会爆炸,或者可能是无关的-但是,它当然不仅仅用于async/wait,我的意思是,因为在这个示例中,db访问是异步的,所以try&catch在这里是多余的。它不会捕获数据库中的异常。为了捕获此类错误,您需要在承诺中附加.catch