环境简介
阿里云ECS(CentOS 7.3 64位)、koa2
安装node
1. yum install -y wget
2. wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz [下载安装包]
3. xz -d node-v10.16.3-linux-x64.tar.xz [解压]
4. tar -xf node-v10.16.3-linux-x64.tar
5. ln -s ~/node-v10.16.3-linux-x64/bin/node /usr/bin/node [部署bin-node]
6. ln -s ~/node-v10.16.3-linux-x64/bin/npm /usr/bin/npm [部署bin-npm]
【注】node下载地址
安装pm2
1. npm install -g pm2
2. ln -s ~/node-v10.16.3-linux-x64/bin/pm2 /usr/bin/pm2 [部署bin-pm2]
【注】使用ln -s 是把对应的工具注册成全局
请求实践
用pm2起一个服务
这个时候一般是请求不会成功,我们需要允许跨域。
const cors = require('koa2-cors');
app.use(cors()) // 放在route之前
【注】一般在第一次实践中会出现很多莫名的报错,不要慌,先在本地用node启动排查下,基本上的问题是一样的。
优化接口配置
我们在浏览器做接口请求的时候(如果是把前端项目与后端项目放在一起时)需要加端口来区分,比如我们一般的请求http://127.0.0.1:3000/api/list
,这和我们在真实项目中的请求看起来并不太一样(端口没有去掉),所以我们来用nginx配置给我们的接口请求做代理。
nginx.conf
server {
listen 80;
server_name localhost;
location /api/ {
proxy_pass http://127.0.0.1:3000/;
}
}
【注】location后面的有点类似命名空间,以api开头的请求被代理到3000端口,在server中可以加入多个location配置。
简述
其实这片小笔记应该写在最后,只不过是最近在尝试往项目中引入node中间层
的概念,找了很多资料最后实践出来的一套比较清晰的服务端启动node服务的流程。