koa出现Internal Server Error问题,求解
如图,在返回数据的时候,有时候articles会是undefined
,导致上述问题,但是有时候会查询成功,不会出现错误,有时候会出现articles为undefined
错误,后台用的是koa,模版引擎是koa-ejs
,求解,谢谢。
8 回复
result变量申明是多余的,undefined表明未获得数据,在回调中if (err) { console.error(err) }看看问题出在哪里
await不是你那样用的,不需要回调函数的,应该写成await articles = Article.find({});或者使用promise的then,你现在完全按照同步的方式写代码,实际上代码是异步执行
来自酷炫的 CNodeMD
await并不是万能的。。他只是把一个promise链同步了,当你的await关键字后面跟的不是一个promise对象的时候,await其实就不具备了把异步变成同步的功能,举个例子:
const timer = function () {
setTimeout(() => {
console.log(1)
}, 1000);
};
const fun = async () => {
await timer();
console.log(2);
};
fun();
和
const timer = function () {
return new Promise((resolve) => {
setTimeout(() => {
console.log(1)
resolve()
}, 1000);
});
};
const fun = async () => {
await timer();
console.log(2);
};
fun();
但是可以包装一下转成 promise 嘛,不包装的话不就是回调地狱了么
@shynome 谢谢
@lucky-leaf 谢谢
@wangchaoduo 谢谢