使用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訪問。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM