意外的令牌异步 ()

Unexpected Token async ()

我遇到了一个奇怪的问题,因为我的代码在 Ubuntu 和 Windows 机器上运行良好,但在 Centos 服务器上却失败了。我有相同的节点版本 8.9.1 和相同的 npm 5.5.1 以及相同的 sails 1.0.0.41(全局和本地)。一切正常,除了我的 Centos 机器上我得到

const makeRequest = async () => {
                          ^
SyntaxError: Unexpected token (

带有指向第一个括号的箭头。我目前唯一怀疑的是我的 N 版本管理没有正确更新节点。 运行 node -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);
});

关于如何解决这个错误有什么建议吗?

代码中缺少 }。检查下面

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);
});

已编辑

OP 的回应

The issue was version management.

node -v gave me 8.9.1 sudo node -v gave me 6.11

The solution was to chown the folder for my user (rather then root), and run the application without sudo. NVM then worked correctly. Accepting the other answer as there were errors in my code.

问题是版本管理。

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

解决方案是为我的用户(而不是 root)chown 文件夹,运行 不使用 sudo 的应用程序。然后 NVM 正常工作。接受其他答案,因为我的代码中有错误。

有类似问题,

我也尝试过对 npm install 进行 sudo,首先导致以下错误, 并导致异步意外令牌错误。

npm WARN checkPermissions Missing write access to /home/mohanbabu/node_modules
npm WARN enoent ENOENT: no such file or directory, open '/home/mohanbabu/package.json'
npm WARN mohanbabu No description
npm WARN mohanbabu No repository field.
npm WARN mohanbabu No README data
npm WARN mohanbabu No license field.
npm ERR! path /home/mohanbabu/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/home/mohanbabu/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/home/mohanbabu/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/home/mohanbabu/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/home/mohanbabu/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/mohanbabu/.npm/_logs/2019-10-13T16_51_12_932Z-debug.log

(async () => { ^ SyntaxError: Unexpected token ( at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:549:28) at Object.Module._extensions..js (module.js:586:10) at Module.load (module.js:494:32) at tryModuleLoad (module.js:453:12) at Function.Module._load (module.js:445:3) at Module.runMain (module.js:611:10) at run (bootstrap_node.js:394:7) at startup (bootstrap_node.js:160:9)

  1. 删除包锁并运行安装 npm 是解决方法。(没有 sudo)
  2. 检查您的节点版本
  3. 运行 js 脚本(用于我的项目 npm start )