安装 Node.js
使用 nvm 安装 Node.js,可以方便的管理 Node.js 版本并切换
https://github.com/nvm-sh/nvm
VS code 编辑器智能提示
安装:
cnpm install @types/node --save-dev
安装成功之后,在使用 VS code 时就会有相关代码提示:
创建第一个 Node.js 应用:
// 文件 server.js
var http = require("http");
http.createServer(
function (request, response) {
response.writeHead(200, {
"content-type": "text/plain"
});
response.write("hello, Node.js");
response.end()
}
).listen(8000);
console.log("端口号:8000");
运行+退出 Node.js 应用
终端输入:
node server.js
浏览器访问地址:
127.0.0.1:8000
或
localhost:8000
退出:
Ctrl + C
中文乱码问题
当我们输出文本内容包含中文时,就会出现乱码:
原因:
因为我们再新建文件的时候,默认保存的编码都是utf-8
解决:
所以在输出时,我们同样需要使用utf-8
修改 server.js
... ...
response.writeHead(200, {
"content-type": "text/plain;charset=utf-8"
});
response.write("hello, Node.js!《学习笔记》");
response.end()
... ...
终端:退出,重启
问题解决。
创建第一个 HTML 页面
//html-server.js
var http = require("http");
http.createServer(
function (request, response) {
response.writeHead(200, {
"content-type": "text/html"
});
response.write("<head><meta charset='utf-8'/></head>")
response.write("<h1>hello</h1>");
response.write("<p>Node.js!</p>");
response.write("<h2>《学习笔记》</h2>");
response.end();
}
).listen(8000);
Node.js 回调函数
阻塞代码
银行排队:
客户只能逐个办理。
非阻塞代码:异步完成
银行排队:
办理客户1,需要填单,下位客户→办理客户2(客户1填单中…)→办理客户3(客户1填单中…)→办理客户1(填单完成)→办理客户4
根目录创建文本文件:
// test-file.txt
====
1. 填单完成
2. 办理业务
====
var fs = require("fs");
// 同步读取,有阻塞
var data = fs.readFileSync("test-file.txt")
console.log("客户1:" + data.toString());
// 异步读取,无阻赛
fs.readFile('test-file.txt', function (err, data) {
if (err) {
console.error(erro);
}
console.log("客户2:" + data.toString());
})
// 同步读取,有阻塞
var data = fs.readFileSync("test-file.txt")
console.log("客户3:" + data.toString());
运行后输出:
客户1:
1. 填单完成
2. 办理业务
客户3:
1. 填单完成
2. 办理业务
客户2:
1. 填单完成
2. 办理业务