Node的fs文件系统模块
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
1、读文件
首先建一个./01.txt文件,由fs.readFile()方法来读取文件
可以再01.txt文档中添加一些信息更好的观察
最后在终端中输入 node js文件名就可以了
//引入fs文件系统模块
const fs = require("fs");
// 读取文件
// fs.readFile("./01.txt", function(err, data) {
// console.log(err);
// console.log(data);
// console.log(data.toString());
// });
// 第一个参数:要读取的文件路径
// 第二个参数:把转化为utf8编码格式
// 第三个参数:回调函数(错误信息,数据)
fs.readFile("./01.txt", "utf8", function(err, data) {
if (err) {
console.log("读取文件错误!");
} else {
console.log(data);
}
});
终端中输入:
E:\Study\Node>node 01-读文件.js
2、写文件
与读文件一样,只不过方法由fs.writeFile()方法来读取文件
在终端运行之后就可以在01.txt中看到写入的信息,此处是???
const fs = require("fs");
// 第一个参数:写入文件的路径
//第二个参数:写入的内容
//第三个参数:回调函数(错误信息)
fs.writeFile("./01.txt", "???", function(err) {
console.log(err);
});
http服务
四个步骤开启http服务
在浏览器中输入访问这个地址 http://127.0.0.1:3000/就可以发起请求
//(1)引入模块
const http = require("http");
//(2)创建一个服务对象
const server = http.createServer();
//监听请求
//request请求对象:获取客户端发送请求信息
//response响应对象:给客户端响应内容
server.on("request", function(request, response) {
console.log("请求进来了");
// (3)响应信息
// response.write("1");
// response.end();
//或者
response.end("111111");
}
//(4)启动监听端口
server.listen(3000, function() {
console.log("启动服务成功!!运行在:http://127.0.0.1:3000/");
});
1、获取请求路径
我们经常在一起操作上会需要知道用户发起哪个请求,获取访问路径来进行相应的操作
server.on("request", function(request, response) {
console.log("请求进来了");
// 获取请求路径
const reqUrl = request.url;
console.log(reqUrl);
}
获取到相应的路径进行操作
if (reqUrl === "/") {
response.end("1首页");
} else if (reqUrl === "/login") {
response.end("2登录页");
}
这个时候我们就可以在页面中看到相应的文字,只不过这个时候文件是乱码,就还得解决这个问题
//服务器向客户端发送的数据是utf8的编码格式
// 浏览器不知道服务器发送的数据是什么格式
// 浏览器会根据当前系统的默认编码格式去解析数据,中文系统GBK
// 怎么解决乱码:告诉浏览器我们的数据编码格式是utf8编码格式
response.setHeader("Content-Type", "text/plain;charset=utf-8");
2、客户端渲染
(1)步骤:请求html,发现有ajax请求,再去请求数据,把数据渲染到页面
3、服务端渲染
(1)步骤:请求html,拿到的html内容就是带有数据最终的html
(2)有利于SEO搜索引擎优化
创建一个goods.html,使用ejs语法来渲染
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>goods.html</title>
</head>
<body>
<ul>
<% goods.forEach(function(item){ %>
<li>
<%= item.name %>
</li>
<% }); %>
</ul>
</body>
</html>
需要引入ejs模块来渲染 npm install ejs
const ejs = require("ejs");
在goods.html里需要注意引入
if (reqUrl === "/server/goods") {
const goods = [
{ id: 1, name: "手机", price: 6000 },
{ id: 2, name: "电脑", price: 8000 },
];
fs.readFile("./goods.html", "utf8", function(err, data) {
const htmlStr = ejs.render(data, {
goods: goods,
});
console.log(htmlStr);
response.setHeader("Content-Type", "text/html;charset=utf-8");
response.setHeader("Access-Control-Allow-Origin", "*");
response.end(htmlStr);
});
}
自己学习笔记,在学习路上还没有停下。
突发奇想的第一篇博客,听说检验自己学会的最好方法就是教会别人哈哈