zoukankan      html  css  js  c++  java
  • 使用nodejs编写api接口并部署到服务器上

    一、用node.js编写api接口

    1、安装node环境,没有就去下载nodejs, 下载地址
    2、创建一个node项目, 新建一个目录文件,例node_proxy
    3、在新建的node项目执行npm init, 文件会生成一个package.json的文件
    4、安装express框架, 及相关依赖。
    npm install express   
    npm install body-parser
    npm install cors --save
    5、在node项目建一个index.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('<p style="color:red">服务已启动</p>'); })
    app.get(
    '/api/list', (req, res) => { res.json({ code: 200, message: '成功', data: { list: [] } }); }) /* 监听端口 */ app.listen(3000, () => { console.log('listen:3000'); })
    6、启动接口: node index.js
    7、在前端则使用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/
    #写入环境变量 echo "export PATH=/usr/local/nodejs/node-v10.15.3-linux-x64/bin:$PATH" >> /etc/profile source /etc/profile
    #查看版本信息 node -v
     
    2、把 api 接口代码上传到服务器(不用上传node_modules,有package.json文件就行了),在服务器文件通过命令窗口npm install 安装依赖。 一般放到服务器的根路径下的 api 文件夹/api/
    3、在服务器安全组中添加 api 监听的端口号不然访问不了接口,比如阿里云的安全防火墙
    4、cd 到 api 接口目录下,输入node index.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地址访问接口,例:47.106.xx.81/api/list或绑定的域名www.xxx.com/api/list访问。

      

  • 相关阅读:
    [HAOI2008]糖果传递
    LGTB 与大数
    LGTB 与序列
    poj1160 Post Office
    组队
    [JLOI2015]装备购买
    三元组
    乘法表
    [BZOJ3730]震波
    [Luogu3345][ZJOI2015]幻想乡战略游戏
  • 原文地址:https://www.cnblogs.com/tuspring/p/14340457.html
Copyright © 2011-2022 走看看