这是我参与更文挑战的第8天,活动详情查看:更文挑战
一点随想,不吐不快~
今天读了张鑫旭前辈的《学不进去,没时间学怎么办?》,深有感触,简单说一下。
我觉得这篇文章是值得我反复拜读的,目前只是粗浅看了两遍,简单说一下非常有感触的。文章中说:” 学习专业技术这件事情,唉……就像硬着头皮喝了一碗白开水,回头一看,麻鸭,还有一缸白开水要喝,而且是司马光砸缸救人那么大的一口缸。这白开水淡而无味,量又大,而且喝了几碗啥效果也看不到,想了想,还是去看剧玩游戏有意思,最终表现为有心想学,无力学习。 “
怎么说呢,我的想法是: 如果我们在舒适区的话,我们随心意喝果汁,喝牛奶,喝点小酒,喝很多很多,可是,如果我们在炎炎夏日,我们在30多度的高温闷热环境下渴了很久,如果此时有一杯白开水摆在你的面前,你是不是会觉得白开水就是世间最美味的饮品?可能换个环境,或者你回到家后有饮料,有啤酒,但,至少在那时,白开水对我们来说,便是最需要的,最美味的。换种想法说呢,因为喝了白开水,我们才撑到有机会去喝饮料。所以说了这么多呢,就是想说: 学习如同饮白开水,平淡无味,但可解困境忧愁。常饮之,浇焦愁。
开始正文
接上篇基础文章 《Node系列学习之Node基础》 ,基础环境已经搭建好。
路由处理
创建一级目录
src
,并在src
下创建blog.js
与user.js
blog.js
const { getList } = require('../controller/blog')
const { SuccessModel, ErrorModel } = require('../model/resModel')
const handleBlogRouter = (req, res) => {
const method = req.method
// 获取博客列表
if (method == 'GET' && req.path == '/api/blog/list') {
const author = req.query.author || ''
const keyword = req.query.keyword || ''
const listData = getList(author, keyword)
return new SuccessModel(listData)
}
// 获取博客详情
if (method == 'GET' && req.path == '/api/blog/detail') {
return {
msg: '这是获取博客详情的接口'
}
}
// 新建一篇博客
if (method == 'POST' && req.path == '/api/blog/new') {
return {
msg: '这是新建博客的接口'
}
}
// 更新一篇博客
if (method == 'POST' && req.path == '/api/blog/update') {
return {
msg: '这是更新博客的接口'
}
}
// 删除一篇博客
if (method == 'POST' && req.path == '/api/blog/del') {
return {
msg: '这是删除博客的接口'
}
}
}
module.exports = handleBlogRouter
user.js
const handleUserRouter = (req, res) => {
const method = req.method
// 登录
if (method == 'POST' && req.path == '/api/user/login') {
return {
msg: '这是登陆的接口'
}
}
}
module.exports = handleUserRouter
返回模型处理
src
下新建model
文件夹, 新建resModel.js
resModel.js
class BaseModel {
constructor(data,message) {
if(typeof data == 'string') {
this.message = data
data = null
message = null
}
if(data) {
this.data = data
}
if(message) {
this.message = message
}
}
}
class SuccessModel extends BaseModel {
constructor(data,mesage) {
super(data, message)
this.errno = 0
}
}
class ErrorModel extends BaseModel {
constructor(data,message) {
super(data,message)
this.errno = -1
}
}
module.exports = {
SuccessModel,
ErrorModel
}
controller来返回数据
新建
controller
文件夹,与model
同级,controller
下新建blog.js
controller/blog.js
const getList = (author, keyword) => {
// 返回mock数据
return [
{
id: 1,
title: '标题XXX',
content: '内容A',
createTime: 1623165670787,
author: 'Tmier1'
},
{
id: 2,
title: '标题LLL',
content: '内容B',
createTime: 1623165731256,
author: 'Tmier2'
}
]
}
module.exports = {
getList
}
然后更新下app.js
app.js
const querystring = require('querystring')
const handleBlogRouter = require('./src/router/blog.js')
const handleUserRouter = require('./src/router/user.js')
const serverHandle = (req, res) => {
res.setHeader('Content-Type', 'application/json')
// 获取path
const url = req.url
req.path = url.split('?')[0]
// 解析 query
req.query = querystring.parse(url.split('?')[1])
// 处理 blog 路由
const blogData = handleBlogRouter(req, res)
if (blogData) {
res.end(JSON.stringify(blogData))
return
}
// 处理 user 路由
const userData = handleUserRouter(req, res)
if (userData) {
res.end(JSON.stringify(userData))
return
}
// 未命中路由, 返回404
res.writeHead(404, {"Content-Type": "text/plain"})
res.write("404 Not Found\n")
res.end()
}
module.exports = serverHandle
OK,今天就先到这了,明天继续学习Node~