任何使用nodejs编写api接口并部署到服务器上

一、用node.js编写api接口

1、安装node环境,没有就去下载nodejs, 下载地址
2、创建一个node项目, 新建一个目录文件,例node_demo
3、进入node_demo目录下,执行命令:npm init -y
如下图所示:

 

 

4、安装express框架, 及相关依赖。
npm install express   #安装express框架
npm install body-parser #body-parser是一个HTTP请求体解析中间件,使用这个模块可以解析JSON、Raw、文本(Text)、URL-encoded格式的请求体,Express框架中就是使用这个模块做为请求体解析中间件。
参考文献:https://blog.csdn.net/fuhanghang/article/details/116986474
npm install cors --save   #利用cors模块解决跨域问题:

安装之后目录结构如下:

 

 

我们接着打开vscode 这个软件打开,当然也可以用 idea ,打开之后我们需要添加一个 app.js 这个文件,因为这是我们启动服务的一个入口! 

app.js:

/* 引入express框架 */
const express = require('express');
const app = express();
/* 引入cors */
const cors = require('cors');
app.use(cors());
/* 引入body-parser */
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.all('*', function (req, res, next) {
  if (!req.get('Origin')) return next();
  // use "*" here to accept any origin
  res.set('Access-Control-Allow-Origin', '*');
  res.set('Access-Control-Allow-Methods', 'GET');
  res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
  // res.set('Access-Control-Allow-Max-Age', 3600);
  if ('OPTIONS' == req.method) return res.send(200);
  next();
});
app.get('/', (req, res) => {
  res.send('<style="color:red">服务已启动</p>');
})
app.get('/api/list', (req, res) => {
  res.json({
    code: 200,
    message: '成功',
    data: {
      list: []
    }
  });
})
/* 监听端口 */
app.listen(3000, () => {
  console.log('listen:3000');
})

5,  启动接口: node app.js

6, 在前端则使用http://localhost:3000/api/list 去访问这个接口

 

 

二、把项目部署到服务器上

1、在服务器安装 nodejs,  
服务器版本信息
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.4.1708 (Core) 
Release:        7.4.1708
Codename:       Core

 

安装脚本:
 #准备
 yum install -y wget
 #下载安装
 wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
 mkdir -p /usr/local/nodejs
 tar -Jxvf node-v10.15.3-linux-x64.tar.xz -C /usr/local/nodejs/<br>
 #写入环境变量
 echo "export PATH=/usr/local/nodejs/node-v10.15.3-linux-x64/bin:$PATH" >> /etc/profile
 source /etc/profile<br>
 #查看版本信息
 node -v
2、把 api 接口代码上传到服务器(不用上传node_modules,有package.json文件就行了),在服务器文件通过命令窗口npm install 安装依赖。 一般放到服务器的根路径下的 api 文件夹/api/
3、在服务器安全组中添加 api 监听的端口号不然访问不了接口,比如阿里云的安全防火墙

 

 4、cd 到 api 接口目录下,输入node app.js启动接口就可以了。但是命令窗口关了接口连接也会断开, 可以使用screen、forever、pm2保护进程。

三、让nodejs接口一直在服务器运行

 1、screen、forever、pm2都可以管理nodejs的接口,我这里用了pm2.

 2、 建议使用 PM2 , 优点:
  ①可以多进程
  ②可以将日志(分类)保存到指定的目的
  ③可以自动重启
  ④可以方便的查看进程基本信息

 3、使用npm/cnpm全局安装

npm install -g pm2
pm2命令使用(项目更目录下使用):
$ pm2 start app.js  启动app项目
$ pm2 list 列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常。
  
$ pm2 monit 监视每个node进程的CPU和内存的使用情况
$ pm2 logs 显示所有进程日志
$ pm2 stop all 停止所有进程
$ pm2 restart all 重启所有进程
$ pm2 reload all 0秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0 停止指定的进程
$ pm2 restart 0 重启指定的进程
$ pm2 startup 产生 init 脚本 保持进程活着
$ pm2 web 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0 杀死指定的进程
$ pm2 delete all 杀死全部进程
启动进程的方式详细:
$ pm2 start app.js -i max 根据有效CPU数目启动最大进程数目
$ pm2 start app.js -i 3 启动3个进程
$ pm2 start app.js -x 用fork模式启动 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23 用fork模式启动 app.js 并且传递参数 (-a 23)
$ pm2 start app.js --name serverone 启动一个进程并把它命名为 serverone
$ pm2 stop serverone 停止 serverone 进程
$ pm2 start app.json 启动进程, 在 app.json里设置选项
$ pm2 start app.js -i max -- -a 23 在--之后给 app.js 传递参数
$ pm2 start app.js -i max -e err.log -o out.log 启动 并 生成一个配置文件

4、通过服务器ip地址访问接口,例:45.103.xx.81/api/list或绑定的域名www.xxx.com/api/list访问。

如下图所示:

 

 测速启动成功!!!

posted @ 2022-08-11 17:28  学富五车  阅读(1292)  评论(0编辑  收藏  举报