## 思考问题
1.js可以在浏览器执行:浏览器中有js解析引擎
2.js可以操作DOM BOM:浏览器内置了DOM BOM的API函数 js可以调用它们
3.js运行环境:js解析引擎 内置API
4.js在浏览器环境运行可以前端开发 在node.js运行环境中可以做后端开发
## 什么是node.js
1.node.js是基于Chrome V8引擎的js运行环境
2.node.js运行环境:V8引擎 内置API
## 执行
1.执行js文件
node xx.js
读取
const fs = require('fs')
fs.readFile('../1.js', (err, data) => {
if (err) {
throw 'err'
}
console.log(data.toString())
})
写入
const fs = require('fs')
fs.writeFile('../1.js', '学习node.js', (err) => {
if (err) {
throw 'err'
}
console.log('写入成功')
})
成绩整理
const fs = require('fs')
fs.readFile('./成绩.txt','utf8', (err, data) => {
if (err) {
throw 'err'
}
const arr1 = data.split(' ')
const arr2 = []
arr1.forEach(item => {
arr2.push(item.replace('=',':'))
});
const arr3 = arr2.join('\r\n')
fs.writeFile('../1.js', arr3, (err) => {
if (err) {
throw 'err'
}
console.log('写入成功')
})
})
路径动态拼接的问题
在使用 fs 模块操作文件时,如果提供的操作路径是以 ./ 或 ../ 开头的相对路径时,很容易出现路径动态拼接错误的问题。
解决方案:在使用 fs 模块操作文件时,直接提供完整的路径,不要提供 ./ 或 …/ 开头的相对路径,从而防止路径动态拼接的问题。
path路径模块
path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理
需求。
引入
const path = require('path')
路径拼接
path.join([...paths])
…paths 路径片段的序列
const path = require('path')
const fs = require('fs')
const pathStr = path.join('/a', '/b/c', '../', '/d', 'e', 'f')
console.log(pathStr); //\a\b\d\e\f
fs.readFile(path.join(__dirname, '/files/2.txt'), 'utf-8', function (err, success) {
if (err) {
return console.log('读取文件失败', err.message);
}
console.log('读取文件成功', success);
})
获取路径中的文件扩展名
const path = require('path')
const fPath = '/a/b/c/index.txt'
const pathExtName = path.extname(fPath)
console.log(pathExtName); //.txt