Nodejs学习总结(四)node路由设计+封装读取数据文件模块(异步编程)

node路由设计

为了简化入口文件app.js以及使代码的模块化程度更高,需要将入口文件中的路由部分抽离出来成一个单独的文件,router.js.

  1. 首先在router.js文件中导入express
const express = require('express')
  1. 使用express的router功能
let router = express.Router()
  1. 把路由都挂载到路由容器中
router.get('/students/new', (req, res) => {
     
})
  1. 将router导出
module.exports = router
  1. 在app.js入口文件中将路由容器挂载到app服务实例上
let router = require('./router') //导入router.js文件
app.use(router)

封装读取数据文件模块

  1. 单独新建一个文件,专门处理读写文件这一类的操作,类似于调用各种API
//student.js
// 数据操作文件模块,操作文件中的数据,只处理数据,不关心业务

const fs = require('fs')

let dbPath = './db.json'
//获取所有学生列表
exports.find = function(callback) {
     
     fs.readFile(dbPath, 'utf8', (err, data) => {
      //异步操作
         if (err) {
     
            return callback(err)
         }
         callback(null, JSON.parse(data).students)
     })
}
  1. 在router.js文件中调用students.js中相应的模块
//导入文件
const Student = require('./students')
let router = express.Router()

router.get('/students', (req, res) => {
     
	//调用了students.js中的find模块
    Student.find((err, students) => {
     
        if (err) {
     
            return res.status(500).send('Server error!')
        }
        res.render('index.html', {
     
            students: students
        })
    })
})
//导出router
module.exports = router
  1. 在入口文件app.js中导入router.js文件
let router = require('./router')
app.use(router)

你可能感兴趣的:(nodejs,nodejs,封装,javascript)