javascript - Express中不允许等待吗?
问题描述
谁能解释我为什么会得到
SyntaxError: await is only valid in async function
从下面,因为我在函数await
内部使用async
?
(async function(){
'use strict';
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.post("/", (req, res) => {
await console.log('a');
res.status(200).end();
});
app.listen(config.webhook_port, () => console.log("Listening"));
})();
上面是一个简化版的 webhook 监听器,可以同时获取多个 webhook。所以console.log()
在代码中使用 只是为了模拟一个会被调用的函数。因此,内部app.post()
将有逻辑来决定如何处理每个收到的 webhook。
我想使用的原因await
是我可以检查函数的返回值。
解决方案
删除外部异步,然后编写:
app.post("/", async (req, res) => {
await console.log('a');
res.status(200).end();
});
推荐阅读
- dns - 当底层域发生变化时,如何使用 Intersphinx 链接文档?
- jquery - 在图像加载时保持滚动位置
- vuetify.js - Laravel 和 VueJs(Vuetify) 错误:MethodNotAllowedHttpException
- c++ - C++:将控制台输出存储在宏中更好吗?
- azure - Arm 模板验证通过 Azure Devops 版本失败,适用于 powershell 和 test-AzResourceGroupDeployment
- javascript - 将 JSON 从 URL 格式化为 HTML
- outlook - Office 365 Outlook 加密不起作用
- variables - 如何定义具有字符串和键映射的 Terraform var:值标签以放入云资源中?
- python - 指正确的tensorflow安装
- regex - 外壳连接错误匹配的字母与表情符号