意外的令牌异步()

ede*_*bin 5 node.js async-await sails.js n

我有一个奇怪的问题,因为我的代码在Ubuntu和Windows机器上工作正常并且在Centos服务器中失败.我有相同的节点版本8.9.1和相同的npm 5.5.1和相同的帆1.0.0.41(全局和本地).一切都有效,除了我的Centos机器

const makeRequest = async () => {
                          ^
SyntaxError: Unexpected token (
Run Code Online (Sandbox Code Playgroud)

用箭头指向第一个paren.我目前唯一怀疑的是我的N版本管理没有正确更新节点.运行节点-v报告8.9.1.以下是异步代码的简化示例:

const makeRequest = async () => {
  try{
    const user = await sails.models.user.findOne({id: user_id});
    return Promise.resolve(user);
    }
  catch(error){
    sails.log.error('error getting data', error);
  }
}

return makeRequest().then(out => {
  return Promise.resolve(out);
});
Run Code Online (Sandbox Code Playgroud)

有关如何解决此错误的任何建议?

Vip*_*mar 6

}代码中缺少。检查下面

const makeRequest = async() => {
  try {
    const user = await sails.models.user.findOne({
      id: user_id
    });
    return Promise.resolve(user);
  } catch (error) {
    sails.log.error('error getting data', error);
  }
} // -> Its misssing in your code
return makeRequest().then(out => {
  return Promise.resolve(out);
});
Run Code Online (Sandbox Code Playgroud)

已编辑

OP的回应

问题是版本管理。

节点-v给了我8.9.1 sudo节点-v给了我6.11

解决的办法是为我的用户(而不是root)锁定文件夹,然后在不使用sudo的情况下运行该应用程序。NVM然后可以正常工作。接受其他答案,因为我的代码中有错误。

  • 尝试仅通过异步运行简单的代码并等待`const fs = require('fs'); const makeRequest = async()=> {const user = await fs.readFileSync('./ package.json')} return makeRequest()。then(out => {return Promise.resolve(out);});` (4认同)
  • 是的,它更好,值得推荐。安装完成后,您可以在安装8.9.1之后使用`nvm alias default 8.9.1`设置默认版本。 (2认同)

ede*_*bin 6

问题是版本管理.

node -v给了我8.9.1 sudo node -v给了我6.11

解决方案是为我的用户(而不是root)chown文件夹,并运行没有sudo的应用程序.然后NVM正常工作.接受另一个答案,因为我的代码中存在错误.