koa出现Internal Server Error问题,求解
发布于 6 年前 作者 wangxuedongOvO 3926 次浏览 来自 问答

image.png 如图,在返回数据的时候,有时候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 嘛,不包装的话不就是回调地狱了么

回到顶部