node.js - 私有 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 和 npm
问题 1:较旧的 nmp lib 和较新的 npm lib 之间存在冲突。您的新 npm 仍然指向旧版本的节点(不支持let
),您需要设置新 nodejs 的路径来解决此问题
问题2:您需要安装代码中使用的所有模块,如果您已经添加,package.json
则只需运行,npm install
否则您必须指定模块名称,如npm install express
推荐阅读
- xml - XSLT 中子字符串的复杂使用
- r - Rcpp:将本机 C++ 函数作为参数传递?
- c# - SignalR Clients.Client($id) 无效
- docker - 如何确定从最新/稳定标签构建的 Docker 映像的特定版本?
- r - dplyr 重命名“找不到对象”
- uwp - 在 UWP AppServiceConnection 中检索字节数组
- ruby-on-rails - 验证前的 ActiveModel 属性类型转换?
- c++ - 将类对象实例作为参数从 main() 传递给另一个类对象实例
- javascript - React-table 单个单元格样式
- android - 安装后无法启动每日通知