Node.js基础知识(一)

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);
        });
    }

自己学习笔记,在学习路上还没有停下。

突发奇想的第一篇博客,听说检验自己学会的最好方法就是教会别人哈哈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值