Web API
-
这里是最初的版本
const server = http.createServer((req, res) => { const pathName = req.url; if (pathName === "/api") { // __dirname是当前文件所在的位置 fs.readFile(`${__dirname}/dev-data/data.json`, "utf-8", (err, data) => { const productData = JSON.parse(data); res.writeHead(200, { "Content-type": "application/json" }); res.end(data); }); } else { // 写404状态码,输出在控制台中 res.writeHead(404, { "Content-type": "text/html", "my-own-header": "Hello World!", }); res.end("<h1>Page not found!</h1>"); } }); server.listen(8000, "127.0.0.1", () => { console.log("Listening to requests on port 8000."); });
这里需要注意的地方:
这里是修改之后的版本
// 把这里的内容写到外面了
const data = fs.readFileSync(`${__dirname}/dev-data/data.json`, "utf-8");
const dataObj = JSON.parse(data);
const server = http.createServer((req, res) => {
const pathName = req.url;
if (pathName === "/" || pathName === "/overview") {
res.end("This is the OVERVIEW!");
} else if (pathName === "/product") {
res.end("This is the PRODUCT!");
} else if (pathName === "/api") {
res.writeHead(200, { "Content-type": "application/json" });
res.end(data);
} else {
// 写404状态码,输出在控制台中
res.writeHead(404, {
"Content-type": "text/html",
"my-own-header": "Hello World!",
});
res.end("<h1>Page not found!</h1>");
}
});
server.listen(8000, "127.0.0.1", () => {
console.log("Listening to requests on port 8000.");
});
- 把读取data的内容写到外面,这里叫做top-level code,顶层代码,这里的代码只执行一次,就是在这个脚本执行的时候,所以不存在阻塞,可以用同步读取。
- 注意的是,我们一般都会把只需要执行一次的代码写到顶层。因为下面createServer的代码是循环执行的,会一直在执行,如果把这些代码写在里面,消耗不必要的资源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。