世界上最伟大的投资就是投资自己的教育
Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程 已录完,每天更新一集
接下来全力录制商城项目课程,直到完结
var http = require('http');
var fs = require('fs');
var onRequest = function(request, response) {
console.log('Request received');
response.writeHead(200, { 'Content-Type': 'text/html' });
var myReadStream = fs.createReadStream(__dirname + '/index.html', 'utf8');
// response.write('Hello from out application');
myReadStream.pipe(response);
}
var server = http.createServer(onRequest);
server.listen(3000, '127.0.0.1');
console.log('Server started on localhost port 3000');
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>Document</title>' +
'</head>' +
'<body>' +
'</body>' +
'</html>'
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>
hello wolrd
</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:47Free轻松学 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:3815Free轻松学 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 (完结)
▬▬▬▬▬▬ 联系我 👋 ▬▬▬▬▬▬
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
▬▬▬▬▬▬ 微信相关 👋 ▬▬▬▬▬▬




© 汕尾市求知科技有限公司 | 专业版网站 | 关于我们 | 在线学员:1143
粤公网安备 44152102000088号
| 粤ICP备19038915号
页面的图标是怎么弄的啊?
哪个图标 没明白所问哦
就是 favicon.ico,我放了一个同名图片进来没用。。
继续往下看,再看到 express 可能就有些明白。
代码中为什么用管道方法,就不需要 response.end() 了吗
同问!!!!
首先搞清楚一些概念:
myReadStream
是一个可读流,response
是一个可写流 (继承自http.ServerResponse
), 使用pipe
把一个可读流的输出连接到了一个可写流的输入其次, 对于可写流, 查看官方文档, 可以看到以下事件和方法:
writable.write(chunk[, encoding][, callback])
writable.end([chunk[, encoding]][, callback])
个人理解, 上面使用的
pip
方法, 实际等价于下面代码:所以实际上使用了
pipe()
已经完成了write()
和end
方法, 再次调用response,end()
显的多次一举.同时, 官方文档对于writable.end([chunk[, encoding]][, callback])也说了:
一目了然, 这也是为什么视频里面会报:
The first argument must be be one of type of String or Buffer
,pipe
方法会最后会返回一个流, 明显不是 String 或者 Buffer 类型, 自然出错想要知道更多关于流和 http 模块的介绍, 我推荐阅读下面三篇文章:
当然, 官网是最好的资料, 虽然我知道很多时候不是非常详细:
以上均是个人查阅资料之后的理解, 若有错误随风前辈也请赶紧指正, 欢迎讨论 :)
随风 · 元婴 打赏此回复 1 仙灵石