这是一个小专案并没有要使用express这样的服务器框架
所以需要自己制作路由功能
首先安装 nodemon 这样每次更改後会自动刷新服务器方便开发
npm i nodemon --save-d
然後更改 package.json 的 scripts
"scripts": {
"start": "nodemon index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
然後启动服务器
npm start
接着修改index.js档案
var http = require("http");
var server = http.createServer(async function (req, res) {
let url = req.url.split("?")[0];
let paramrter = req.url.split("?")[1];
if (paramrter) paramrter = getUrlParameter(paramrter);
let data = null;
let buffers = [];
for await (const chunk of req) {
buffers.push(chunk);
}
data = Buffer.concat(buffers).toString();
data = data ? JSON.parse(data) : null;
// 上方获取资料区
// 这边开始实作 url
if (url === "/") {
res.writeHead(200, { "Content-Type": "application/json" });
// 实作判断请求
if (req.method === "GET") {
if (paramrter) {
res.write(
JSON.stringify({
message: "Hello GET Parameter",
paramrter: paramrter,
})
);
} else {
res.write(JSON.stringify({ message: "Hello GET no Parameter" }));
}
res.end();
} else if (req.method === "POST") {
if (data) {
res.write(JSON.stringify({ message: "Hello POST data", data: data }));
console.log("post data");
} else {
res.write(JSON.stringify({ message: "Hello POST no data" }));
console.log("post no data");
}
res.end();
} else {
res.write("404 page");
res.end();
}
} else {
res.write("404 page");
res.end();
}
});
server.listen(3000);
console.log("noder server is start");
/**
* @description 用来确认是否有带参数
*
* @param {string} reqUrl url ? 後面的部分
* @return {*}
*/
function getUrlParameter(reqUrl) {
var url = reqUrl; //获取url中"?"符後的字串
var theRequest = new Object();
var strs = null;
strs = url.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
return theRequest;
}
反覆使用 postman 确认 post 和 get 方法和结果
这就是最简单的路由
<<: [Day16] Andoroid - Kotlin笔记: CustomDialog
先来制作死亡後开启死亡画面,把之前死亡画面的Active(开启)暂时先关闭,等Player死亡时候才...
前言 JavaScript 的语句分成两种 陈述式、表达式,这两种语法区分并不困难,接下来会一一介绍...
昨天我们把 Django 专案容器化, 最後推送上 AWS ECR, 部署上仍旧仰赖 Code De...
今日题目:13. Roman to Integer(Easy) Roman numerals are...
因为专案做的是电商网站, 不免俗需要一些假资料, 所以在一个月做专案的期间也学会了, 如何做假资料,...