世界上最伟大的投资就是投资自己的教育
https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/
server.js
var http = require('http');
var fs = require('fs');
var url = require('url');
var querystring = require('querystring');
function startServer(route, handle) {
var onRequest = function(request, response) {
var pathname = url.parse(request.url).pathname;
console.log('Request received ' + pathname);
var data = [];
request.on("error", function(err) {
console.error(err);
}).on("data", function(chunk) {
data.push(chunk);
}).on('end', function() {
if (request.method === "POST") {
if (data.length > 1e6) {
request.connection.destroy();
}
data = Buffer.concat(data).toString();
route(handle, pathname, response, querystring.parse(data));
} else {
var params = url.parse(request.url, true).query;
route(handle, pathname, response, params);
}
});
}
var server = http.createServer(onRequest);
server.listen(3000, '127.0.0.1');
console.log('Server started on localhost port 3000');
}
module.exports.startServer = startServer;
handler.js
var fs = require('fs');
function home(response) {
response.writeHead(200, { 'Content-Type': 'text/html' });
fs.createReadStream(__dirname + '/index.html', 'utf8').pipe(response);
}
function review(response) {
response.writeHead(200, { 'Content-Type': 'text/html' });
fs.createReadStream(__dirname + '/review.html', 'utf8').pipe(response);
}
function api_records(response, params) {
response.writeHead(200, { 'Content-Type': 'application/json' });
response.end(JSON.stringify(params));
}
module.exports = {
home: home,
review: review,
api_records: api_records
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>hfpp2012</title>
</head>
<body>
<form action="/api/v1/records" method="post">
name: <input type="text" name="name" /> age: <input type="text" name="age" />
<input type="submit" value="Submit">
</form>
</body>
</html>
09:071Free轻松学 Node.js - 基础篇免费视频教程 #1 课程介绍与开发环境搭建
05:252Free轻松学 Node.js - 基础篇免费视频教程 #2 全局对象
03:113Free轻松学 Node.js - 基础篇免费视频教程 #3 回调函数
05:454Free轻松学 Node.js - 基础篇免费视频教程 #4 模块
07:005Free轻松学 Node.js - 基础篇免费视频教程 #5 事件
07:176Free轻松学 Node.js - 基础篇免费视频教程 #6 读写文件(同步,异步)
04:037Free轻松学 Node.js - 基础篇免费视频教程 #7 创建和删除目录
10:298Free轻松学 Node.js - 基础篇免费视频教程 #8 流和管道
05:329Free轻松学 Node.js - 基础篇免费视频教程 #9 web 服务器 part 1 介绍
03:4410Free轻松学 Node.js - 基础篇免费视频教程 #10 web 服务器 part 2 响应 JSON
03:4711Free轻松学 Node.js - 基础篇免费视频教程 #11 web 服务器 part 3 响应 HTML 页面
01:5312Free轻松学 Node.js - 基础篇免费视频教程 #12 web 服务器 part 4 用模块化思想组织代码
05:3713Free轻松学 Node.js - 基础篇免费视频教程 #13 web 服务器 part 5 路由
09:4214Free轻松学 Node.js - 基础篇免费视频教程 #14 web 服务器 part 6 重构路由代码
09:38Free轻松学 Node.js - 基础篇免费视频教程 #15 web 服务器 part 7 使用 GET 或 POST 请求发送数据
05:2216Free轻松学 Node.js - 基础篇免费视频教程 #16 包管理器 NPM
04:4117Free轻松学 Node.js - 基础篇免费视频教程 #17 package.json 文件
02:3618Free轻松学 Node.js - 基础篇免费视频教程 #18 nodemon (完结)
▬▬▬▬▬▬ 联系我 👋 ▬▬▬▬▬▬
微信:qiuzhi99pro
b 站:https://space.bilibili.com/31152817
知乎:https://www.zhihu.com/people/rails365
Github:https://github.com/hfpp2012
Youtube:https://www.youtube.com/channel/UCA-Jkgr40A9kl5vsIqg-BIg
© 汕尾市求知科技有限公司 | 创业者社区 | Rails365 Gitlab | Qiuzhi99 Gitlab | Railstart 创业项目 | 知乎 | b 站 | 搜索
粤公网安备 44152102000088号
| 粤ICP备19038915号
总觉得作者是潮州人
是潮汕人
看到这里我决定看完之后冲会员了 哈哈
多谢支持,后面的会更好,这个系列的视频是早期录制的,后面的录制把握得更好,多学习,学学后端,学学前端,才是真正的 web 开发。
胶己人胶己人.
希望后面能 加点 RN , 这样 前,后,aqq 全齐了
加油,会慢慢计划。
这一节东西有遗漏,router 的代码没给,这里步骤有跳的
var fs = require("fs");
function route(handle, pathname, response, params) {
console.log("Routing a request for " + pathname);
if (typeof handle[pathname] === "function") {
handlepathname;
} else {
response.writeHead(200, { "Content-Type": "text/html" });
fs.createReadStream(__dirname + "/404.html", "utf8").pipe(response);
}
}
module.exports.route = route;
代码不完全,我截图发上来