Express:异步请求处理程序出现问题



我正在express上运行以下代码:

app.get('/items/:item', async function (req, res) {
let itemName = req.params.itemName;
let item = new DataItem(itemName);
let itemProcessed = await item.process(); //call of async method 
console.log(itemProcessed); //prints data processed 
res.json(itemProcessed);
})

我看到没有发送回复
我还可以看到itemProcessed字符串表示是用console.log打印的如果我从函数中删除异步人员(异步前缀和某些异步方法的调用(,则会发送响应

有什么东西不见了吗?提前感谢

我想您应该使用express-async-wrap包才能使用async处理程序:

const wrap = require('express-async-wrap')

app.get('/items/:item', wrap(async function (req, res) {
let itemName = req.params.itemName;
let item = new DataItem(itemName);
let itemProcessed = await item.process(); //call of async method 
console.log(itemProcessed); //prints data processed 
res.json(itemProcessed);
})

最新更新