Node.js知识要点

Node.js 概念:

是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

发展史:

以前:后台—MVC+layui
现在:后台—Spring Boot/Spring code+vue
以前:前端—h5+c3+js+jq+bootstrip+PHP
现在:前端—h5+c3+es6+nodejs+element-UI+vue+微信小程序
执行方式一: ctrl+`打开控制台,cd切换到当前文件目录,node 文件名
执行方式二: 查找到文件夹,在文件路径输入cmd,node 文件名–>
执行方式三: 按住shift右键,打开powershell,node 文件名–>
执行方式四: window+r,输入cmd,cd切换到当前文件目录,node 文件名

D: 切换D盘目录
dir 查看当前目录的所有文件
cd 文件名 进入下一级目录
cd … 返回上一级目录
cls 清除控制台记录
tab键可以快速生成执行的路径
使用 esc 键,能够快速清空当前已输入的命令
使用 ↑ 键,可以快速定位到上一次执行的命令
ctrl+左右键,可以快速定位到特殊字符前

fs.readFile(“路径”,“编码格式”,function(err,user){}) 方法,用来读取指定文件中的内容

参数1:必选参数,字符串,表示文件的路径。
参数2:可选参数,表示以什么编码格式来读取文件。
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果
err返回null,读取文件成功,报错读取失败

<script>
fs.readFile("./1.txt","utf8",function(err,user){
    if(err){
        return console.log("文件读取失败"+err.message);
    }
    console.log(user);
})
</script>

fs.writeFile(“路径”,“内容”,“编码格式”,function(err){}) 方法,用来向指定的文件中写入内容

参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。
参数2:必选参数,表示要写入的内容。
参数3:可选参数,表示以什么格式写入文件内容,默认值是 utf8。
参数4:必选参数,文件写入完成后的回调函数
err返回null,写入文件成功,报错写入失败

<script>
fs.writeFile("day02.html","想要填写的内容","utf8",function(err){
    console.log(err);
})
</script>

path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串

<script>
const path = require("path");
console.log(path);
let num = "ages"
const pathName = path.join("https://www.hao",num,".com");
console.log(pathName);
</script>

path.basename() 方法,用来从路径字符串中,将文件名解析出来

path 必选参数,表示一个路径的字符串
ext 可选参数,表示文件扩展名
返回: 表示路径中的最后一部分

<script>
const pathBase = path.basename("1/index/admin.html",".html")
console.log(pathBase);
</script>

path.extname() 方法,可以获取路径中的扩展名部分

path 必选参数,表示一个路径的字符串
返回: 返回得到的扩展名字符串


let pathExt = path.extname("1/index/admin.html");
console.log(pathExt);

需要记的:
|1xx(临时响应)
// 100: 请求者应当继续提出请求。
// 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。
// 2xx(成功)
// 200:正确的请求返回正确的结果
// 201:表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。
// 202:请求是正确的,但是结果正在处理中,这时候客户端可以通过轮询等机制继续请求。
// 3xx(已重定向)
// 300:请求成功,但结果有多种选择。
// 301:请求成功,但是资源被永久转移。
// 303:使用 GET 来访问新的地址来获取资源。
// 304:请求的资源并没有被修改过
// 4xx(请求错误)
// 400:请求出现错误,比如请求头不对等。
// 401:没有提供认证信息。请求的时候没有带上 Token 等。
// 402:为以后需要所保留的状态码。
// 403:请求的资源不允许访问。就是说没有权限。
// 404:请求的内容不存在。
// 5xx(服务器错误)
// 500:服务器错误。
// 501:请求还没有被实现

http模块

<script>
const http = require("http");
// console.log(http);
// 2.创建一个 web 服务器实例
 const server = http.createServer();
// 3.为服务器实例绑定 request 事件
// req.url获取请求访问的地址
// req.method获取请求类型
// res.end("内容")向客户发送内容
// res.setHeader()解决中文乱码
server.on("request",(req,res)=>{
    // console.log(req);
    // console.log("------------------------------------");
    // console.log(res);
    // res.end("恭喜你请求成功了!")
    // 返回url
    res.setHeader("Content-Type","text/html;charset=utf-8")
    res.end("123我我我")
    // req获取url 

})
// 4.listen() 方法,即可启动当前的 web 服务器
server.listen("80",()=>{
    console.log("服务启动成功");
})
</script>

module.exports.userName = “张三”;
module.exports.som=function(){
console.log(“我是函数”);
}
module.exports权重比exports高
module.exports能使用赋值为{},也可以使用module.exports.共享成员
exports不能使用赋值为{},可以使用exports.共享成员
注意:为了防止混乱,建议大家不要在同一个模块中同时使用 exports 和 module.exports
每个.js文件都有自己的module,共享的成员会存在module
使用require(“自定义模块路径”);导入

时钟案例 匹配css,js,html

<script>
// 时钟案例
const fs = require("fs");
const path = require("path");
// 获取文件
fs.readFile("./dataTime/index.html","utf-8",function(err,user){
    if(err){
        return console.log("请求文件失败"+err.message);
    }
    // console.log(user);
    resolveCss(user);
    resolveJs(user);
    resolveHtml(user);
})
// 匹配css
function resolveCss(user){
    // 匹配style标签
    let requeCss = /<style>[\s\S]*<\/style>/;
    let styleCss = requeCss.exec(user);
    // console.log(styleCss[0]);
    // 替换style标签
    styleCss[0] = styleCss[0].replace("<style>","").replace("</style>","");
    fs.writeFile("./dataTime/index.css",styleCss[0],"utf-8",function(err){
        if(err){
            return console.log("请求文件失败"+err.message);
        }
    })
}
// 匹配js
function resolveJs(user){
    let requeJs = /<script>[\s\S]*<\/script>/;
    let styleCss = requeJs.exec(user);
    // console.log(styleCss[0]);
    styleCss[0] = styleCss[0].replace("<script>","").replace("</script>","");
    fs.writeFile("./dataTime/index.js",styleCss[0],"utf-8",function(err){
        if(err){
            return console.log("请求文件失败"+err.message);
        }
    })
}
// 匹配修改html
function resolveHtml(user){
    let requeCss = /<style>[\s\S]*<\/style>/;
    let requeJs = /<script>[\s\S]*<\/script>/;
    user = user.replace(requeCss,"<link rel='stylesheet' href='./dataTime/index.css'>").replace(
        requeJs,"<script src='./dataTime/index.js'></script>"
    )
    fs.writeFile("./dataTime/index.html",user,"utf-8",function(err){
        if(err){
            return console.log("请求文件失败"+err.message);
        }
    })
}
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值