Node.js 01

Node.js

Node.js概述

javascript语言运行在浏览器的内核中的js引擎中

Node.js是一个开发平台,在这个平台上可以进行软件开发,并且开发出功能更加强大软件,在这个平台上进行开发很方便,因为Node.js提供了丰富的API和优秀的运行性能
在Node.js平台中开发的语言仍然是JavaScript
Node.js:js解析器;内置的API
浏览器:js解析器;内置的API

Node.js开发环境

关于命令行用法补充

切换盘符命令:盘符+:
cd切换目录命令:cd路径名称
查看当前目录下的文件 dir
清屏命令 cls
创建文件夹 mkdir 文件夹名称
退出命令行环境的方式:1.ctrl+c 2.输入 .exit

fs模块

fs FileSystem文件系统模块 ,用于操作文件
1.读取文章内容
fs.readFile 异步方式
fs.readFileSync 同步方式

// 文件系统操作-读取文件
// 1.引入文件模块
var fs = require('fs')
// 2.使用模块的API操作文件

// 参数一:表示读取文件的路径
// 参数二:读取文件的编码
// 参数三:读取文件成功的回调函数
fs.readFile('./data.txt', 'utf-8', function (err, data) {
    // 参数err表示读取成功或者失败(如果err===null表示读取成功,否则err提示错误信息)
    //参数data表示读取到的文件内容
    // 如果err是true,表示读取失败,此时一般要终止后续代码的运行
    if (err) {
        return
    }
    console.log(err);
    console.log(data);
})

总结:
参数一:表示读取文件的路径
参数二:读取文件的编码
参数三:读取文件成功的回调函数
参数err表示读取成功或者失败(如果err===null表示读取成功,否则err提示错误信息)
参数data表示读取到的文件内容
如果err是true,表示读取失败,此时一般要终止后续代码的运行

//同步的方法读写文件
//同步的方法代码简单,但是性能没有异步的方式好
const fs = require('fs')

//采用同步的方式读取文件
let res = fs.readFileSync('./data.txt', 'utf-8')
console.log(res);

总结:
同步的方法代码简单,但是性能没有异步的方式好
2.写入文章内容
fs.writeFlie 异步方式
fs.writeFileSync 同步方式

// 写文件操作
const fs = require('fs')
// 参数一表示写入文件的路径
// 参数二表示写入的文件内容
// 参数三表示写入内容的编码
// 参数四希尔成功的回调函数
fs.writeFile('./data.txt', 'abc', 'utf-8', function (err) {
    if (err) {
        //写入文件失败
        console.log(err);
        return
    }
    console.log("写入文件成功");
})

总结:
参数一表示写入文件的路径
参数二表示写入的文件内容
参数三表示写入内容的编码
参数四希尔成功的回调函数

//采用同步的方式写文件
const fs = require('fs')

const res = fs.writeFileSync('./data.txt', 'coniqiwa', 'utf-8')
console.log(res);

成绩处理案例

需求:将横线之上的数据转换为横线之下的数据
读取文件中原始数据,加工后写入到另一个文件中
\r\n 表示回车换行
str.replace(’=’, ‘:’)

 //成绩处理案例
//1.导入fs文件系统核心模块
const fs = require('fs')
// 2.读取原始的文件数据
let scores = fs.readFileSync('./score.txt', 'utf-8')
// 3.处理文件的分数格式
// \r\n 表示回车换行
scores = scores.replace(/\s/g, '\r\n')
//  str.replace('=', ':')
scores = scores.replace(/=/g, ':')
// 4.把处理的结果写入文件
fs.writeFileSync('./result.txt', scores, 'utf-8')
console.log('写入成功');

path 模块

path.sep用法
const fs = require('fs')
const path = require('path')
//__dirname当前js文件所处的路径
console.log(__dirname);
// path.sep自动检测平台环境,根据环境自动选中斜杠类型
//windows \
//linux/max/unix  /
let res = fs.readFileSync(__dirname + path.sep + 'path.txt', 'utf-8')
console.log(res);
console.log(path.sep);

总结:
path.sep自动检测平台环境,根据环境自动选中斜杠类型
windows \ linux/max/unix /

path.join拼接路径
/*
  核心模块:path 路径操作

  1、导入核心模块
  2、使用模块相关API处理路径

  // path.join方法的作用:把参数中所有的路径拼接到一块并且规范化路径
  path.join([...paths]), 参数表示Rest参数
*/
const path = require('path')

// D:\current\day14\02-code\data.json
// let p = path.join(__dirname, './data.json')

// D:\current\day14\02-code\abc\hello\data.json
// let p = path.join(__dirname, 'abc', 'hello', './data.json')

// D:\current\day14\02-code\hello\data.json
let p = path.join(__dirname, 'abc', '../hello', './data.json')
console.log(p)

时钟案例

//时钟案例
const path = require('path')
const fs = require('fs')
//准备相关文件路径
const htmlPath = path.join(__dirname, './clock.html')
const cssPath = path.join(__dirname, './clock.css')
const jsPath = path.join(__dirname, './clock.js')
const resultPath = path.join(__dirname, './result.html')
// 1.读取clock.html文件的内容
let content = fs.readFileSync(htmlPath, 'utf-8')
// console.log(content);
// 2.处理文件内容
// 注意:小括号只是提取分组的一个作用
// 匹配<style></style>
const regStyle = /<style>([\s\S]*)<\/style>/
// 匹配<script></script>
const regScript = /<script>([\s\S]*)<\/script>/


// const ret = regStyle.exec(str)
// regStyle.exec方法的作用:提取字符串中符合正则的子串
// ret是一个数组
// 数组的第一项是包含style标签的整体内容
// 数组的第二项是除去style标签后里面的内容

//提取html中的css和js内容
const retStyle = regStyle.exec(content)
const retScript = regScript.exec(content)
//替换clock.html文件中的代码为链接形式
//把style中包含标签的内容,设置为链接形式,放在html页面中
content = content.replace(retStyle[0], '<link rel="stylesheet" href="clock.css">')
//把script包含标签的内容,设置为链接形式 ,放在html页面中
content = content.replace(retScript[0], '<script src="./clock.js"></script>')
// 3.把处理的结果写入对应的文件中
//写入style中不带标签  ,是第二项[1]
fs.writeFileSync(cssPath, retStyle[1], 'utf-8')
fs.writeFileSync(jsPath, retScript[1], 'utf-8')
//把替换成链接的网页写入文件
fs.writeFileSync(resultPath, content, 'utf-8')
console.log('操作成功');

总结:
步骤:
1.读取clock.html文件的内容
2.处理文件内容
3.把处理的结果写入对应的文件中

正则中小括号只是提取分组的一个作用
const ret = regStyle.exec(str)
regStyle.exec方法的作用:提取字符串中符合正则的子串
ret是一个数组
数组的第一项是包含style标签的整体内容
数组的第二项是除去style标签后里面的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值