5

我遇到了一个奇怪的问题,因为我的代码在 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);
});

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

4

3 回答 3

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

已编辑

OP的回应

问题是版本管理。

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

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

于 2017-11-22T12:58:09.357 回答
6

问题是版本管理。

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

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

于 2017-11-22T16:07:23.693 回答
0

有类似的问题,

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

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)在 Object.Module._extensions..js (module.js:586:10) 在 Module.load (module.js:494:32) 在 tryModuleLoad (module.js:453:12) 在 Function.Module._load (module .js:445:3) 在 Module.runMain (module.js:611:10) 在运行时 (bootstrap_node.js:394:7) 在启动时 (bootstrap_node.js:160:9)

  1. 删除包锁并运行 npm install 是解决方法。(没有 sudo )
  2. 检查您的节点版本
  3. 运行 js 脚本(对于我的项目 npm start )
于 2019-10-13T17:26:42.067 回答