Node.js快速入门

mac2022-06-30  21

官网下载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 -save

npm 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 即可看到效果

最新回复(0)