NodeJS

Summary: Author: 张亚飞 | 阅读时间: 3 minute read | Published: 2015-08-08
Filed under Categories: DevOpsTags: Linux, Server, Software, DevOps,

Node.js 管理相关

在Ubuntu 安装 Node.js

安裝 Node.js

起始这个步骤很重要,而且如果参考大部分教学就会踩到雷.主要原因是如果用上面那篇的方法,不会自动帮你做好软连接,后续很容易出現莫名其妙的问题.

sudo apt update
sudo apt install nodejs-legacy

直接用 nodejs-legacy 即可.這個会自动建立软连接,可以避免不少比较旧的库的问题.

在 安装node的时候,安装位置为 /usr/local/bin/node ,但这个位置是需要root权限的,而截图上提示的错误就是你的权限不 够,node没有安装成功.如果你用源码编译安装,记得最后安装时加sudo执行.而且你在执行nodejs的时候,截图也提示你了,你的nodejs没 有安装,但你可以使用 sudo apt install nodejs 这个命令来安装,这是因为你之前添加了ppa才可以这样安装.

另 外,我想补充的是,你所用的ppa的方法,已经是很旧的了,即使安装成功也是很老版本的,这个ppa已经很久不更新了,现在ubuntu软件仓库就已经有 node了,所以你可以先用

sudo apt-add-repository -r ppa:chris-lea/node.js-devel

删除这个ppa,然后安装仓库里的node:

sudo apt install nodejs

如果你发现仓库里的nodejs版本不够高,可以更新一下仓库和软件版本:

sudo apt update
sudo apt upgrade

你也可以用源代码编译安装node,也很简单,下载node的源代码包,解压,进入目录执行:

./configure && make && sudo make install

补充:

为什么执行 node -v 没有输出?

Ubuntu 的仓库里面,已经存在一个叫node的软件包了,可以执行aptitude search node`查看,这是一个先于nodejs存在的软件名,已经被用了,所以ubuntu只能把用于js开发的这个node改名叫nodejs,如果系统已 经安装此软件,执行node -v并非nodejs的node,它跟nodejs一点关系也没有,它的-v参数是不显示任何东西的. node 还是 nodejs ?

用 apt install nodejs 方法安装的,或是ppa方法安装的,命令都应该叫 nodejs,应该使用nodejs -v来测试.不过如果使用源代码的方式编译安装的(默认安装到 /usr/local/bin ,除非指定prefix参数),也叫node,这个node是 真正的nodejs的node,所以为了避免与ubuntu仓库中的node引起混淆,建议安装后,把node改名为nodejs

windows下是 node -v;ubuntu下是 nodejs -v


nvm

参考 使用 nvm 安装 nodejs

建议使用版本管理工具nvm,来安装Node,因为可以自由切换版本

Window 下安装 nvm

nvm-windows 下载安装文件 nvm-setup.zip

nvm 将 nodejs 安装到目录 C:\Users\yafei\AppData\Roaming\nvm\v5.5.0 使用 npm install -g * 将包安装到目录 C:\Users\yafei\AppData\Roaming\nvm\v5.5.0\node_modules

window 下 nvm 常用命令

nvm list
nvm install latest
nvm on: Enable node.js version management.
nvm off: Disable node.js version management (does not uninstall anything).
nvm proxy [url]: Set a proxy to use for downloads. Leave [url] blank to see the current proxy. Set [url] to "none" to remove the proxy.
nvm uninstall <version>: Uninstall a specific version.
nvm use <version> [arch]:

Ubuntu 下安装 nvm

nvm 使用 安装脚本安装 nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
. ~/.nvm/nvm.sh

Ubuntu 下 nvm 常用命令

nvm ls-remote  // 列出所有可用版本
nvm install latest

安装 npm

sudo apt install npm

npm常用命令

npm install <name>安装nodejs的依赖包

例如 npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6

npm install <name> -g  将包安装到全局环境中

但是代码中,直接通过require()的方式是没有办法调用全局安装的包的.全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm命令

npm install <name> --save  安装的同时,将信息写入package.json中

项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包

这样代码提交到github时,就不用提交 node_modules 这个文件夹了.

npm init   会引导你创建一个package.json文件,包括名称. 版本. 作者这些信息等
npm remove <name>移除
npm update <name>更新
npm ls 列出当前安装的了所有包
npm root  查看当前包的安装路径
npm root -g  查看全局的包的安装路径
npm help  帮助,如果要单独查看install命令的帮助,可以使用的npm help install

升级npm到最新版本,使用以下命令

npm install npm@latest -g

国内npm安装nodejs modules失败的几个解决方案

npm config set proxy="http://127.0.0.1:8087"//设置代理地址 http://www.xxxx.com:port格式
npm config set registry="http://registry.npmjs.org"//设置npm源地址

nodejs国内npm安装nodejs modules失败的几个解决方案

参考列表

Ubuntu 正确安装 Node.js 和 Npm Ubuntu下装nodejs的问题

错误及常用命令

清除缓存重新安装

rm -rf node_modules
npm cache clean
npm install

在 Ubuntu 下安装 converse.js 频繁出现以下错误

Please report this full log at https://github.com/Medium/phantomjs
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! weird error 1
npm ERR! not ok code 0
make: *** [stamp-npm] Error 1

网友提示需要安装 nodejs

sudo apt install nodejs-legacy

但是执行此命令提示我已安装

  • Setup with Ubuntu
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
  • Then install with Ubuntu:
sudo apt install --yes nodejs
  • If you get node: command not found chances are likely you need to link your binary:
sudo ln -s /usr/bin/nodejs /usr/bin/node

参考 Installing Node.js via package manager

重新执行命令安装出现如下错误

Failed at the phantomjs@1.9.19 install script 'node install.js'.

执行命令

npm config set strict-ssl false

Failed at the phantomjs@1.9.19 install script ‘node install.js’.


安装 nrm – 快速切换 NPM 源 (附带测速功能)

npm install -g nrm

常用命令

列出可选的源

$ nrm ls
* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - http://registry.npm.taobao.org/
  eu ----- http://registry.npmjs.eu/
  au ----- http://registry.npmjs.org.au/
  sl ----- http://npm.strongloop.com/
  nj ----- https://registry.nodejitsu.com/

切换源到 taobao

$ nrm use taobao
Registry has been set to: http://registry.npm.taobao.org/

增加源 你可以增加定制的源,特别适用于添加企业内部的私有源.私有源可以使用cnpmjs架设.

nrm add  <registry> <url> [home]

删除源

nrm del <registry>

测试速度 你还可以通过 nrm test 测试相应源的响应时间.

例如,测试官方源的响应时间:

$ nrm test npm
npm ---- 1328ms

测试所有源的响应时间:

$ nrm test
  npm ---- 891ms
  cnpm --- 1213ms
* taobao - 460ms
  eu ----- 3859ms
  au ----- 1073ms
  sl ----- 4150ms
  nj ----- 8008ms

注意,为了取得较准确的结果,可以考虑多次测试取平均值.


安装 Bower 包管理工具

sudo npm install bower -g

bower 常用命令

bower install
bower update

Installing Bower on Ubuntu

安装 mongo-express

在安装 mongo-express 的时候,需要服务器有 nodejs 环境

mongo-express 是一个基于 Node.js 和 express 的开源的MongoDB Web管理界面.

主要功能:

连接多个数据库
分别连接和认证独立的数据库
认证为管理员查看所有数据库
数据库 黑名单/白名单
集合(collections)的增删查改
文档(documents)的增删查改
在文档中使用BSON数据类型

限制

被编辑的文档必须有document._id属性
无GridFS的支持(有可能成为计划功能)
二进制BSON数据类型没有经过测试
JSON文档是通过JavaScript虚拟机解析,所以可以在服务器上的Web界面执行恶意JavaScript代码.

安装:

npm install mongo-express

或者全局安装:

npm install -g mongo-express

或者从Github上直接拿下来解压后运行 npm install 即可

下载 Mongo-express

配置:

复制或者把 config.default.js 改名为 config.js 的新文件.

在配置文件中填写 MongoDB 的连接等你想更改的信息.

启动运行:

nodejs app

查看 http://localhost:8081 或者你在配置中写的 URL/port .

在Ubuntu下执行启动命令会提示如下错误

yzhang@coamn:~/ServerCoam/Tools/MongoDB$ node app
 The program 'node' can be found in the following packages:
  * node
  * nodejs-legacy
Ask your administrator to install one of them

提示没有安装node程序,需要先检查是否已安装nodejs运行环境

Thu Sep 24 12:58:16 yzhang@coam:~/ServerCoam/Tools/MongoDB$ nodejs -v
v0.10.25

然后执行命令

nodejs app

Comments

Cor-Ethan, the beverage → www.iirii.com