节点es2015代码不能用于生产,但适用于开发机器

时间:2016-08-04 17:13:53

标签: node.js

我在生产和开发上使用节点v4.4.4。我使用箭头功能。适用于我的开发机器,但不适用于生产。

/opt/node/backend/server.js:109
    mongoose.model('cv').find({}, (err, cvs) =>{
                                             ^^
    SyntaxError: Unexpected token =>
        at exports.runInThisContext (vm.js:73:16)
        at Module._compile (module.js:443:25)
        at Object.Module._extensions..js (module.js:478:10)
        at Module.load (module.js:355:32)
        at Function.Module._load (module.js:310:12)
        at Function.Module.runMain (module.js:501:10)
        at startup (node.js:129:16)
        at node.js:814:3

我在制作中运行debian 6,我的开发人员是mac(el captain)。

有什么不对?

更新

node --version在生产和开发

上返回v4.4.4

我只能使用sudo node server.js启动生产节点。如果我没有sudo,我会segmentation fault

我用nvm在生产上安装了v4.4.4。我认为以前的版本是0.12。

更新2

sudo node --version提供v0.12.2

我通过运行nvm install v4.4.4.安装了v4我无法nvm作为sudo

运行

当我打开一个新终端node --version时,也会提供v0.12.2

1 个答案:

答案 0 :(得分:0)

我在prod中运行时遇到同样的问题,为所有用户可靠地获取相同节点版本(通过NVM安装)的唯一方法是运行:

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

这基本上确保每个使用节点的用户都会找到你复制的版本。如果需要更新节点,请使用nvm安装并再次运行该命令。

感谢:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps