首页 > 解决方案 > 猫鼬等待承诺错误

问题描述

我在查询集合时尝试使用等待,但我无法运行它。我没有看到错误

router.route('/errors')
    .post((req, res) => {
        const envirementName = getProjectEnv(getErrorLocation(req.body.error));

        let envCollection = await EnvirementProjectsCollection.findOne({envirementName}).exec();
        console.log(envCollection);
    });

它崩溃了 -

let envCollection = await EnvirementProjectsCollection.findOne({envirementName}).exec();
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:588:28)

从我所看到的查询的 exec() 函数将返回一个我想要等待的承诺。目前我找不到错误。对于我做错的事情,我会很高兴得到一些解释和帮助。

提前致谢!

标签: javascriptexpressmongoose

解决方案


我认为您在函数之前没有使用 async 关键字。

试试这个代码。

希望这个答案对你有帮助。

router.route('/errors')
    .post(async (req, res) => {
        const envirementName = getProjectEnv(getErrorLocation(req.body.error));

        let envCollection = await EnvirementProjectsCollection.findOne({envirementName}).exec();
        console.log(envCollection);
    });

推荐阅读