IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 初学node.js -> 正文阅读

[JavaScript知识库]初学node.js

一. 什么是node.js

html, 骨架
css, 样式
js, 交互的行为
浏览器中的javascript由几部分组成
js核心语法
webapi(DOM操作, BOM操作, AJAX操作)

思考: 为什么javascript可以在浏览器中被执行
.因为有解析引擎
思考: 为什么说, javascript可以操作Dom和Bom
待执行的js代码调用webAPI, 交给解析引擎, (每个浏览器都内置了操作DOM和BOM的函数)

什么是js代码的运行环境
浏览器->v8引擎->内置的函数

node.js就是一个基于谷歌浏览器v8引擎的js代码的运行环境

二. 可以用node.js来做什么

注意, node.js不能直接调用浏览器的内置API,

那么node,js有, 可以做做什么呢

三. node.js中javascript的组成部分

有内置模块, 有第三方模块

node -V: 查看node.js的版本
node js文件的路径: 运行文件也就是执行代码

四. node.js中的三个内置模块

4.1 fs模块读写操作文件

fs.readFile()方法; 用来读取指定文件中的内容
fs.writeFile()方法: 用来向指定的文件中写入内容

要先导入这个模块,
const fs = require(‘fs’)

fs从哪里来, 安装node.js时, 安装的内置API, 引入就可以使用

三个参数: path必选, options可选, callback必选
文件的路径字符串
可选参数, 表示什么编码格式
必选, 文件读取完成之后, 通过回调函数拿到读取的结果

const fs = require(‘fs’)
fs.readFile(‘./file/12.txt’, ‘utf8’, function(err, dataStr) {
console.log(err)
console.log(‘--------’)
console.log(dataStr)
})

如果读取成功, err的值为null, dataStr的值就是文件内容
如果读取失败, err的值为错误对象, dataStr的值为undefined

const fs = require('fs')
fs.readFile('./file/testfile.txt','utf8',  function(err, dataStr){
	//console.log(err)
	//console.log('--------')
	//console.log(dataStr)
	if(err){
		console.log("file readed fail")
	}else{
		console.log(dataStr)
		let StrArr = dataStr.split(" ")
		let newStrArr = []
		StrArr.forEach(item=>{
			newStrArr.push(item.replace("=",":"))
		})
		let newStr = newStrArr.join("\r\n")
		fs.writeFile('./file/12.txt',newStr, function(err){
			if(err){
				console.log("file writeed fail")
			}else{
				//console.log("文件写入成功")//是乱码
				console.log("file writed success")
			}
		})
	}
})

注意
这里有一个fs模块的动态拼接问题,
由示例可知,不论是写入文件还是读取文件,都是使用的./获取当前路径, 如果这个当前路径不是当前的node命令执行的路径, 很显然fs对象是不能正常工作的.

解决方法就是提供一个完整路径.
但是移植性非常差

const fs = require('fs')
fs.readFile('C:\\Users\\lyd\\Documents\\lea\\file\\testfile.txt','utf8',  function(err, dataStr){
	//console.log(err)
	//console.log('--------')
	//console.log(dataStr)
	if(err){
		console.log("file readed fail")
	}else{
		console.log(dataStr)
		let StrArr = dataStr.split(" ")
		let newStrArr = []
		StrArr.forEach(item=>{
			newStrArr.push(item.replace("=",":"))
		})
		let newStr = newStrArr.join("\r\n")
		fs.writeFile('C:\\Users\\lyd\\Documents\\lea\\file\\12.txt',newStr, function(err){
			if(err){
				console.log("file writeed fail")
			}else{
				//console.log("文件写入成功")//是乱码
				console.log("file writed success")
			}
		})
	}
})

node提供了一个叫做__dirname
时刻监听node命令的执行文件的所在目录

const fs = require('fs')
fs.readFile(__dirname+'/file/testfile.txt','utf8',  function(err, dataStr){
	//console.log(err)
	//console.log('--------')
	//console.log(dataStr)
	if(err){
		console.log("file readed fail")
	}else{
		console.log(dataStr)
		let StrArr = dataStr.split(" ")
		let newStrArr = []
		StrArr.forEach(item=>{
			newStrArr.push(item.replace("=",":"))
		})
		let newStr = newStrArr.join("\r\n")
		fs.writeFile(__dirname+'/file/12.txt',newStr, function(err){
			if(err){
				console.log("file writeed fail")
			}else{
				//console.log("文件写入成功")//是乱码
				console.log("file writed success")
			}
		})
	}
})

4.2 使用path模块来处理路径

fs -> path
node提供的
有属性和方法
专门用来处理用户对路径的需求

path.join(‘多个’,‘路径’,‘片段’,‘拼接’,‘到’,‘一起’)
path.basename()

4.3 使用http模块写一个基本的web服务器

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:20:29  更:2022-04-24 09:21:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:42:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码