官网下载Node.js
这里以CentOS为例
cd / wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.gz tar -zxvf node-v10.16.3-linux-x64.tar.gz cd node-v10.16.3-linux-x64/bin ls #查看版本 ./node -v全局使用
cp -r /node-v10.16.3-linux-x64 /usr/local/ vi /etc/profile #在顶部加上一行 export PATH=$PATH:/usr/local/node-v10.16.3-linux-x64/bin #使配置生效 source /etc/profile现在可以全局使用了
node -v npm -v我这里的工作目录是website
cd /website #创建项目文件夹 mkdir testPro cd testPro #-y表示使用默认配置初始化 npm init -y初始化之后自动会在/website/testPro目录下生成package.json文件
这里使用koa2框架为例
#安装koa2模块 npm install koa -savenpm install指令安装的包就是一个模块 npm install xxx 利用 npm 安装xxx模块到当前命令行所在目录; npm install -g xxx 利用npm安装全局模块xxx;
对应的删除模块就是 npm uninstall xxx 删除xxx模块; npm uninstall -g xxx 删除全局模块xxx;
#查看当前项目的依赖模块如下: npm ls --depth 0 #查看全局依赖模块命令如下: npm ls -g --depth 0安装成功后package.json文件会自动添加一行
"dependencies": { "koa": "^2.8.2" }在/website/testPro目录下创建index.js文件,文件代码如下
const koa = require('koa'); const app = new koa(); app.use(async(ctx,next) =>{ await next(); ctx.response.type = 'text/html'; ctx.response.body = '<h1>Hello koa</h1>'; }); app.listen(3000,() =>{ console.log('server is running at http://localhost:3000'); });这里的index.js这个文件的命名要与package.json的配置项main的值一致
运行index.js
node index.js可以看到server已经跑起来了 用浏览器打开http://localhost:3000/ 即可看到效果
这里也可以使用npm的run script指令来执行 先在项目所在的package.json文件的scripts项里自定义你的脚本
"scripts": { "index":"node index.js", },然后执行
npm run index效果和上面的node index.js是一致的
热部署工具:supervisor
上面的代码每次修改都要重启nodejs才会看到最新的效果,下面改用supervisor监控nodejs进行实时更新
安装supervisor
npm install -g supervisor使用supervisor代替nodejs启动应用
supervisor index.js部署
nodejs进程管理器:pm2 可以对应用状态进行管理,可以启动、暂停、重启或删除应用进程,也可以对进程进行监控,包括对进程错误的记录。一般情况下应用都需要一个进程管理器来守护运行的进程。
npm install -g pm2 #启动 pm2 start index.js #重启 pm2 restart index.js #停止 pm2 stop index.js #停止全部 pm2 stop all #查看进程 pm2 list可以使用命令“ pm2 start index.js --name xxx” 来启动并命名应用
使用Nginx进行反向代理
nginx.conf配置如下:
server { listen 80; server_name test1.cn; charset utf-8; root /website/testPro; #反向代理给nodejs location ~ { proxy_pass http://127.0.0.1:3000; } #静态资源使用nginx直接处理,不经过nodejs location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|mp3|mp4|ttf|woff|svg|eot|txt|html|htm)$ { access_log off; expires 360d; try_files $uri =404; } }用浏览器打开http://test1.cn 即可看到效果