** 在原来GET请求和GET请求的返回基础上,继续修改,实现post请求的返回**
** 开启服务,复制到apipost测试后,效果如下**
// index.js
const http = require("http");
const querystring = require("querystring");
const server = http.createServer((req, res) => {
const url = req.url;
const method = req.method;
// 获取请求的路径
const path = url.split("?")[0];
// 获取请求的querystring
const queryStr = url.split("?")[1];
// querystring转对象
const queryObj = querystring.parse(queryStr);
// 打印对象
console.log(queryObj);
if (path === "/api/list" && method === "GET") {
// 定义返回的响应头, 包含状态码200, 返回类型json
res.writeHead(200, { "Content-type": "application/json" });
// 定义返回的响应体, 包括错误码和返回的数据(4条留言)
const responseBody = {
errno: 0,
data: [
{ user: "张三", content: "张三 真帅!" },
{ user: "李四", content: "李四 真帅!" },
{ user: "王五", content: "王五 真帅!" },
{ user: "赵六", content: "赵六 真帅!" },
],
};
// res.end只能返回字符串, 所以需要把对象转成JSON字符串
res.end(JSON.stringify(responseBody));
}else if (path === "/api/create" && method === "POST") {
// 定义返回的响应头, 包含状态码200, 返回类型json
res.writeHead(200, { "Content-type": "application/json" });
// 定义返回的响应体, 包括错误码和返回的数据, message为提示信息, data里的id为留言在数据库中的id, 将来通过此id可以从数据库中获取留言的全部信息, 包括作者, 创建时间, 内容, 其他用户针对词条留言的回复, 等等...
const responseBody = {
errno: 0,
data: { id: 1 },
message: "留言创建成功!",
};
// res.end只能返回字符串, 所以需要把对象转成JSON字符串
res.end(JSON.stringify(responseBody));
}
else {
res.end("别瞎写! [○・`Д´・ ○]");
}
});
server.listen(3000);
console.log("http请求已经被监听, 3000端口, 请访问: http://localhost:3000");
然后, 我们继续编写没有命中路由的情况, 就是url或者method写的不会的情况
最终完整代码如下
// index.js
const http = require("http");
const querystring = require("querystring");
const server = http.createServer((req, res) => {
const url = req.url;
const method = req.method;
// 获取请求的路径
const path = url.split("?")[0];
// 获取请求的querystring
const queryStr = url.split("?")[1];
// querystring转对象
const queryObj = querystring.parse(queryStr);
// 打印对象
console.log(queryObj);
if (path === "/api/list" && method === "GET") {
// 定义返回的响应头, 包含状态码200, 返回类型json
res.writeHead(200, { "Content-type": "application/json" });
// 定义返回的响应体, 包括错误码和返回的数据(4条留言)
const responseBody = {
errno: 0,
data: [
{ user: "张三", content: "张三 真帅!" },
{ user: "李四", content: "李四 真帅!" },
{ user: "王五", content: "王五 真帅!" },
{ user: "赵六", content: "赵六 真帅!" },
],
};
// res.end只能返回字符串, 所以需要把对象转成JSON字符串
res.end(JSON.stringify(responseBody));
}else if (path === "/api/create" && method === "POST") {
// 定义返回的响应头, 包含状态码200, 返回类型json
res.writeHead(200, { "Content-type": "application/json" });
// 定义返回的响应体, 包括错误码和返回的数据, message为提示信息, data里的id为留言在数据库中的id, 将来通过此id可以从数据库中获取留言的全部信息, 包括作者, 创建时间, 内容, 其他用户针对词条留言的回复, 等等...
const responseBody = {
errno: 0,
data: { id: 1 },
message: "留言创建成功!",
};
// res.end只能返回字符串, 所以需要把对象转成JSON字符串
res.end(JSON.stringify(responseBody));
}
else {
res.writeHead(404, { "Content-type": "text/plain" });
res.end("404 Not Found");
}
});
server.listen(3000);
console.log("http请求已经被监听, 3000端口, 请访问: http://localhost:3000");