node.js後端服務之Router應用篇

在上一篇文章《node後端服務搭建》講到了node怎麼搭建,今天記錄下怎麼把後臺服務模塊化,就像前端項目(像Vue),不同的頁面,我們用router來劃分。那麼用node.js搭建的後端項目,我們也是可以用router來區分不同的模塊。
1.比方說,我們這個項目主要有首頁,產品,個人中心的三個功能;那麼我們需要將這三個功能的api拆成3個模塊,所以我們在與package.json並列新建三個api應用目錄,分別爲app-home-api、app-product-api、app-user-api.
2.在app-home-api裏面新建2個js(按照後端springMVC的寫法分爲controller,service層):app-home-controller.js,app-home-service.js
3.在app-home-controller.js我們只管接口,例如:


const express = require('express');
const HomeService = require('./app-home-service')
const home = express.Router();
home.get('/getHomeInfo', (req, res) => {
    const result = new HomeService().getInfo();
    console.log(result)
    res.json(result)
})
module.exports = home;

4.在app-home-service.js,我們處理業務邏輯,一般都是查詢數據或者對參數作判斷等等

const mysql = require('mysql');

function Result({ code = '1', msg = '請求成功', data = {} }) {
    this.code = code;
    this.msg = msg;
    this.data = data;
}
const mysqlOption = {
    host: 'xxx',
    user: 'root',
    password: '123456',
    database: 'test'
}
let con = mysql.createConnection(mysqlOption)
class HomeService {
    getInfo(res, req) {
        let data;
        try {
            con.query(sql, (require, response) => {
                //返回給前端的數據
                data = new Result({ data: response })
            })
        } catch {
            data = new Result({ data: response })
        }
        return data
    }
}
module.exports = HomeService;

5.其他2個應用一樣的邏輯;
6.在index.js裏面,我們修改爲如下;

const express = require('express');
const app = express();
app.use('/home', require('./app-home-api/app-home-controller'))

const port = process.env.port || '3000';
app.set('port', port)
app.listen(80, () => {
        console.log("服務啓動了")
    })
    //請求url找不到,設置請求狀態爲404
app.use((req, res) => {
    res.sendStatus(404)
})

7.啓動服務

npm run start

8.調用app-home-controller.js的api,用postman拼接本地ip+/home/getHomeInfo即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章