私有linux主机上的Node.js应用程序

时间:2018-06-08 06:54:16

标签: node.js linux npm hosting

我有一个运行Red Hat OS的专用linux主机。

我按照this链接安装了Node.js(10.4.0)和npm。我还安装了git并克隆了我的git存储库。我面临三个问题

问题1

如果我在根文件夹上执行 node -v 它会给我v0.11.9,如果我在root上执行 npm -v 它会给我1.3.15

但是,如果我执行〜/ nodejs / bin / node -v ,它会提供正确的版本v10.4.0,如果我执行〜/ nodejs / bin / npm -v 它给了我一个错误:

/home/realedu7/nodejs/lib/node_modules/npm/bin/npm-cli.js:79
      let notifier = require('update-notifier')({pkg})
          ^^^^^^^^
SyntaxError: Unexpected identifier
    at exports.runInThisContext (vm.js:69:16)
    at Module._compile (module.js:432:25)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:349:32)
    at Function.Module._load (module.js:305:12)
    at Function.Module.runMain (module.js:490:10)
    at startup (node.js:123:16)
    at node.js:1027:3

以下是我的终端显示问题的图片: enter image description here

update-notifier有什么问题?

问题2

当我尝试通过进入realedu-app项目文件夹并执行

来运行我的应用程序时
node app.js

它给了我以下错误:

module.js:333
    throw err;
          ^
Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:331:15)
    at Function.Module._load (module.js:273:25)
    at Module.require (module.js:357:17)
    at require (module.js:373:17)
    at Object.<anonymous> (/home/realedu7/realedu-app/app.js:1:77)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:349:32)
    at Function.Module._load (module.js:305:12)
    at Function.Module.runMain (module.js:490:10)

显然,我的节点没有安装express模块​​。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我建议您使用official documentation安装和设置node和npm

问题1:旧的nmp lib和更新的npm lib之间存在冲突。您的新npm仍然指向旧版本的节点(不支持let),您需要设置新nodejs的路径来解决此问题

问题2:您需要安装代码中使用的所有模块,如果您已在package.json中添加,则只需运行npm install,否则您必须指定模块名称如npm install express