首页 > 解决方案 > 私有 Linux 主机上的 Node.js 应用程序

问题描述

我有一个专用的 Linux 主机,上面运行着 Red Hat OS。

我点击链接并在其上安装了 Node.js (10.4.0) 和 npm。我还安装了 git 并克隆了我的 git 存储库。我面临3个问题

问题 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

下面是显示问题的终端图像: 在此处输入图像描述

更新通知程序有什么问题?

问题 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 模块。我该如何解决这个问题?

标签: node.jslinuxnpmhosting

解决方案


我想推荐你使用官方文档来安装和设置 node 和 npm

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

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


推荐阅读