Node+Express的一點實踐

RunTime發表於2018-05-06

Node+Express的一點實踐

寫在前面

由於最近自己在開發一個人的小程式,於是便著手開始進行node服務端的開發。

小程式碼

Node+Express的一點實踐

專案初始化

1. 安裝開發環境

基於node 8.9.4
$ npm install express-generator -g
$ express myapp
複製程式碼

2. 路由

var http = require('http');
var express = require('express');
const querystring = require('querystring');
var router = express.Router();
var request = require('../utils/request');

/**
 * 獲取活動列表
 * @param  {} '/api/getActiveList'
 * @param  {} function(req
 * @param  {} res
 * @param  {} next
 */
router.post('/api/getActiveList', function(req, res, next) {
  const postData = querystring.stringify(req.body);
  request.post(req, res, postData, '/app/mock/3317/getActiveList')
});
複製程式碼

3. 封裝請求

var http = require('http');

exports.post = function(req, res, data, path){
  const options = {
    hostname: 'rap2api.taobao.org',
    port: 80,
    path: path,
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Content-Length': Buffer.byteLength(data)
    }
  };

  const proxyHttp = http.request(options, (response) => {
    console.log(`狀態碼: ${response.statusCode}`);
    console.log(`響應頭: ${JSON.stringify(response.headers)}`);
    response.setEncoding('utf8');
    response.on('data', (chunk) => {
      console.log(`響應主體: ${chunk}`);
    });
    response.pipe(res)
    response.on('end', () => {
      console.log('響應中已無資料。');
    });
  });

  proxyHttp.on('error', (e) => {
    console.error(`請求遇到問題: ${e.message}`);
  });
  
  // 寫入資料到請求主體
  proxyHttp.write(data);
  proxyHttp.end();
}
複製程式碼

守護者 PM2

1. 安裝pm2

$ npm install pm2 -g
複製程式碼

2. 啟動專案

$ pm2 start /bin/www

Start an app using all CPUs available + set a name :
$ pm2 start app.js -i 0 --name "api"
複製程式碼

3. 更多pm2 命令

$ pm2 -h
複製程式碼

專案地址

Node服務 WeApp-TheBall-Node

小程式 WeChatAboutTheBall

小程式-Wepy WeChatAboutTheBall-Wepy

相關文章