node 项目笔记—路由开发(三)
一、新建model目录
新建文件resModel.js
class BaseModel {
constructor(data, message) {
if (typeof data === "string") {
this.message = data;
date = null;
message = null;
}
if (data) {
this.data = data;
}
if (message) {
this.message = message;
}
}
}
class sucessModel extends BaseModel {
constructor(data, message) {
super(data, message);
this.errno = 0;
}
}
class errorModel extends BaseModel {
constructor(data, message) {
super(data, message);
this.errno = -1;
}
}
module.exports = {
sucessModel,
errorModel
};
二、新建controller目录
新建blog.js
const getList = (author, keyword) => {
//先返回一个假数据
return [
{
id: 1,
title: "标题A",
content: "内容A",
createTime: 1597914688046,
author: "陈怂怂"
},
{
id: 2,
title: "标题B",
content: "内容B",
createTime: 1597966688046,
author: "陈快乐"
}
];
};
module.exports = {
getList
};
三、修改router目录中的blog.js
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 sucessModel(listData);
}
四、修改app.js
const querystring = require("querystring");
const handleUserRouter = require("./src/router/user");
const handleBlogRouter = require("./src/router/blog");
const serverHandle = (req, res) => {
res.setHeader("Content-type", "application/json");
const url = req.url;
req.path = url.split("?")[0];
//解析query
req.query = querystring.parse(url.split("?")[1]);
const blogData = handleBlogRouter(req, res);
if (blogData) {
res.end(JSON.stringify(blogData));
return;
}
const userData = handleUserRouter(req, res);
if (userData) {
res.end(JSON.stringify(userData));
return;
}
res.writeHead(404, {
"Content-type": "text/plain" });
res.write("NOT FOUNT");
res.end();
};
module.exports = serverHandle;
这样我们就可以获取到自己返回的假数据了