Node.js基础介绍

学习Node.js的第一天

1. 了解node.js

1.1 什么是node.js

  Node.js:一个采用chrome V8 引擎来跑的js代码环境。

1.2 Node.js的学习内容

  	它只是一个环境,不是一门语言
  	模块系统。
  	NPM包管理工具

2. 下载安装node.js

   2.1   官网下载地址:[node.js下载](https://nodejs.org/en/)
         版本说明:LTS:长期稳定版(LongTerm Support).建议下载14.xx.x LTS

在这里插入图片描述

		2.2 安装
		1) 双击安装文件开始安装(不同系统选择对应的安装文件)
		2) 傻瓜式安装,一路 'next' 即可
		3)注意点:不要修改安装路径,默认就好

在这里插入图片描述

		 2.3 检查是否安装成功
		 1)打开cmd小窗口-快捷键 : window + v
		 2)在窗口里面输入命令:node -v  
		 3)   安装 成功 之后会显示版本号

在这里插入图片描述
在这里插入图片描述

3. 在node环境下运行第一个js代码

3.1 准备一个js文件

在这里插入图片描述

3.2 给js文件添加一点内容

   console.log(1 + 2);

在这里插入图片描述

3.3 打开命令行工具,运行这文件 。
输入的命令是 :node 01-第一个js代码.js (当前的目录名)
每天一点小技巧:
快速填写目录名:手动输入目录名的首个或者前几个字母或数字,再按 tap 键自动补齐

在这里插入图片描述

4. Node.js和浏览器端的区别
在这里插入图片描述

	 4.1 
	 在node.js端 有ECMAScript + 内置模块。
	 在node.js中是没有BOM、DOM、window对象的

5. 常用的命令及按键
在这里插入图片描述

在这里插入图片描述

6. node.js中的模块分类

	1)核心模块 (node.js自带的)  
			源代码[添加链接描述](https://github.com/nodejs/node/tree/master/lib)
	2)自定义模块 (自己写的)  
			相当于我们学习js的自定义函数		
	3)第三方模块 (别人写的)
			相当于别人写好的函数或者库

7. 核心模块

 目标:通过学习核心模块fs,掌握核心模块的基本使用方法
 文档:
 1)😂[添加链接描述](http://nodejs.cn/api/)
 2)😂[添加链接描述](http://api.nodejs.cn/)

7.1 核心模块
		😊核心模块就是 Node 内置的模块,需要通过唯一的标识名称来进行获取。
	每一个核心模块基本上都是暴露了一个对象,里面包含一些方法供我们使用。一般
	在加载核心模块的时候,变量(或常量)的起名最好就和核心模块的标识名同名。
//例如:
const path = requirt('path');
7.2 fs模块
		fs模块(fs是 FileSystem的简写)是Node.js用来进行文件操作的模块,它属于**核心
		模块**。你引入之后就可以直接使用了。
		官方手册:[添加链接描述](http://nodejs.cn/api/fs.html)
// 引入模块
const fs = require('fs');

8. fs-readFile-异步格式

 8.1 格式
// utf8 : 可选
fs.readFile('文件路径','utf8',function(err,data){
    if(err){
        console.log(err);
    }
    console.log(data);
})

说明:

- 参数1:文件路径。 相对路径和绝对路径均可。

- 参数2: 配置项,可选参数,可不写。主要用来配置字符集。一般可设置为'utf8',如果不设置该参数,文件内容会**Buffer形式**返回。

- 参数3: 读取完成后触发的回调函数。这个回调函数在读完文件后自动被nodejs自动调用,并传入 err 和 data

  - 如读取成功,回调函数中的两个参数分别是:

    - err: null

    - data: 文件内容,如果不设置参数2,则返回二进制数据。可以使用 toString() 方法将二进制数据

      转为正常字符串

  - 如读取失败,回调函数中的两个参数分别是:

    - err: 错误对象
    - data: undefined
	8.2 示例1:读文本内容
//引入模块
const fs = require('fs');
fs.readFile('02.txt','utf8',function (err,data) {
    console.log(data);
})

在这里插入图片描述

9. fs-readFile-同步格式

	 9.1格式
	 :api的名字后面有Sync(async是异步的,sync表示同步的)
	 :不是通过回调函数来获取值,而是像一个普通的函数调用一样,直接获取返回值
// 引入模块
const fs = require('fs');

// 2.调用
// ajax:异步的JavaScript和xml
// aSync javascript 和 xml

// Sync:同步
// aSync: 异步

const content = fs.readFileSync('02.txt');
console.log(content);

10. fs-writeFile-文件写入

	10.1 覆盖写入 writeFile  		
	功能:向指定文件中写入字符串,如果没有该文件则尝试创建该文件。
	它是覆盖写入:会把文件中的内容全部删除,再填入新的内容。
// 引入模块
const fs = require('fs');


// fs.writeFile('inio.txt','nihao',(err)=>{
//     console.log(err);
// })

// 文件的写入 :覆盖写入writeFile
// 追加写入 writeLife (参数一,成熟而,参数三,参数四)
// 参数一:要写入文件的路径  ----- 相对路径和绝对路径都可以
// 参数二:要写入文件的内容
// 参数三: 配置项,设置写入的字符集 utf8 
// 参数四:写入完成后触发的回调函数(可以是普通函数,也可以是箭头函数),有一个参数 --- err (错误对象)
let obj = [{ name: 'em', age: 13 }];
// 要转成JOSN字符串格式
let objSrt = JSON.stringify(obj)
fs.writeFile('inio.txt', objSrt, (err) => {
    console.log('haha');
    console.log(err);
})

11. fs-appendFile-文件追加

	12.1文件追加 appendFile  功能 :向指定文件中写入字符串(追加写入), 
	如果没有该文件则尝试创建该文件。
// 引入模块
const fs = require('fs');

// \n  表示换行的意思
let obj = [{ name: 'em', age: 13 }];
// 要转成JOSN字符串的格式
let objSrt = JSON.stringify(obj)
// 追加写入 appendLife (参数一,成熟而,参数三,参数四)
// 参数一:要写入文件的路径        ————      相对路径和绝对路径都可以
// 参数二:要写入文件的内容
// 参数三: 配置项,设置写入的字符集 utf8 
// 参数四:写入完成后触发的回调函数(可以是普通函数,也可以是箭头函数),有一个参数 --- err (错误对象)
fs.appendFile('inio.txt', "\n" + objSrt, (err) => {
    console.log(err);
})

12. 路径存在的隐患
在读取文件时,使用相对路径是容易出问题的
13.路径问题-使用绝对路径

目标:掌握 __dirname__filename的用法,并能在操作文件路径时,正确使用

	13.1  绝对路径 与 相对路径
	绝对路径: 从磁盘根目录开始到指定文件的路径。 
	相对路径:是以某个文件的位置为起点,相对于这个位置来找另一个文件。


	13.2   __dirname __filename 获取绝对路径
	__dirname:获取当前被执行的文件的文件夹所处的绝对路径
	__filename:获取当前被执行的文件的绝对路径


	全局变量的含义是:
	变量:它们的值是变化的。在不同的文件中值就不同。
	全局:在任意地方都可以直接使用。

14. path模块

官网文档地址:path模块官网文档 。它是也是node中的核心模块,作用是用来处理路径问题:拼接,分析,取后缀名等等。

	1.引入模块
const path = require('path');
console.log(path);
	 2.使用模块 
	 path.basename() :此方法返回 `path` 的最后一部分。一般可用来获取路径中的文件名。
	 path.join() :路径拼接。 
	 path.parse(path) :把一个路径转成一个对象
path.extname('index.html');// 返回: '.html'

15.总结:

  • 熟悉运行node的一些基础命令

  • 知道node.js与浏览器端的区别

  • 理解fs-readFile的异步 与 同步

  • 熟练fs-writeFile-覆盖写入

  • 熟练fs-appendFile-追加写入

  • 知道路径存在的隐患,并且知道要如何解决

  • 记住path模块常用的一些方法

  • 在这里插入图片描述

  • 记住fs模块常用的一些方法

  • 在这里插入图片描述

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力活着吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值