第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【金秋打卡】第2天 Node.js+Koa2+MySQL打造前后端分離精品項(xiàng)目《舊島》

標(biāo)簽:
Node.js JavaScript

课程章节: 【深入理解KOA】Koa2的那点事儿与异步编程模型

课程讲师: 7七月

课程内容:

路由系统

npm install koa-router

实例代码

let Koa = require('koa')
let Router = require('koa-router')
let app = new Koa()
let router = new Router()
router.get('/', (ctx, next) => {
	console.log('客户端访问我啦')
})
app.use(router.routes())

路由版本

需要新建一个 api 目录, v1, v2, v3 3个版本对应接口

const book = require('book')
const classic = require('classic')
app.use(book.routes()) // book, classic 暴露的是一个 router 实例
app.use(book.routes())

nodemon自动重启Server

npm install nodemon -g

在 package.json 中

"script":{
	"start": nodemon app.js	
 }

requireDirectory 实现路由自动加载

npm install require-directory
const requireDirectory = require('require-directory')
// 1. 模块  2.目录路径 3. 对象 回调函数
requireDirectory(module, '目录路径', {
	visit: whenLoadModule
}) // 获取到该目录下所有导出的变量, 就不需要这样一个一个的 require 了
function whenLoadModule(obj) {
// instanceof 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
	if(obj instanceof Router) {
		app.use(obj.routes())
    }
}

初始化管理器与 Process.cwd

app.js 里不应该写过多的代码, 需要在根目录创建一个 core 文件夹, 把公共的方法和类都写在这个文件夹中, 在下面新建一个文件定义为 init.js

const requireDirectory = require('require-directory')
// 初始化管理器
class InitManager {
	// 入口总方法
	static initCore(app) {
		InitManager.app = app
		InitManager.initLoadRouters()
    }
	// 用来加载全部的路由
	static initLoadRouters () {
		requireDirectory(module, '目录路径', {
	       visit: whenLoadModule
        }) // 获取到该目录下所有导出的变量, 就不需要这样一个一个的 require 了
        function whenLoadModule(obj) {
        // instanceof 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
	    if(obj instanceof Router) {
		InitManager.app.use(obj.routes())
        }
        }
    }
}

module.exports = InitManager

在 app.js 中导入 InitManager

const InitManager = require('InitManager')
// 传入 app 实例 初始化入口
InitManager.initCore(app)

在 node.js 中有个全局变量 process 通过这个变量下面的 cwd方法可以找到当前文件的绝对路径

		const path = `${process.cwd()}/app/api`
		requireDirectory(module, path, {
	       visit: whenLoadModule
        }) // 获取到该目录下所有导出的变量, 就不需要这样一个一个的 require 了

课程收获

通过本章学习, 明白了如何巧用 类, 如何去灵活自动加载路由

课程截图

图片描述

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消