Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使express端点异步_Javascript_Node.js_Express_Asynchronous - Fatal编程技术网

Javascript 使express端点异步

Javascript 使express端点异步,javascript,node.js,express,asynchronous,Javascript,Node.js,Express,Asynchronous,只需使用express创建一个非常简单的端点来实践异步/等待。 这是我的代码: app.post('/products', async (req, res) => { try { console.log('req', req.body); const data = await addProduct(res.body); res.sendStatus(200); } catch(err) {

只需使用express创建一个非常简单的端点来实践异步/等待。 这是我的代码:

    app.post('/products', async (req, res) =>  {
    try {
        console.log('req', req.body);
        const data = await addProduct(res.body);
        res.sendStatus(200);

    }
    catch(err) {
        res.sendStatus(500);
    }
});
当我尝试使用以下命令启动服务器时:

npx babel-node server.js --presets=es2015
我得到:

    app.post('/products', async function (req, res) {
                      ^^^^^
SyntaxError: missing ) after argument list

有什么想法吗?

异步等待作为ES7功能,这里有两个选项:

  • 与当前的ES6预设一起使用
  • 使用默认为ES7+ES6(巴贝尔推荐)

  • async Wait作为ES7的一项功能,请使用。也不要使用
    res.body
    ,而是
    req.body
    (虽然它与异步问题无关)@Daniel,这解决了问题,但我现在得到了SyntaxError:Unexpected token import,这是我在es2015中没有得到的。导入未包含在es2017预设中?好的,使用这两个预设解决了所有问题,我认为es2017包含了es2015的所有内容,但显然不是这样。谢谢@fgonzalez-是的,这是相当混乱,但它只编译ES7到ES6(写在标题中)。使用默认为ES7+ES6的。