node.js学习笔记(黑马教程)-1-基础了解

一,node.js的组成

node.js是由ECMAScript及node环境提供的一些附加API组成的,包括文件,网络,路径等一些更加强大的API。
在这里插入图片描述

二,基础语法

所有的js语法在Node环境中都可以使用。
它需要命令行工具来运行js代码:
在这里插入图片描述
这样的话,就又需要掌握一些命令行的知识:

  1. 在文件夹处shift+右键—在此处打开Powershell窗口:就可以直接进入本目录下的命令行环境
  2. 文件名太长,只需要输入具备辨识度的前几个字符,按tab键,会自动补全文件路径
  3. clear清除
  4. 上键,可以重新输入之前的命令
  5. __dirname 保存着当前路径
  6. ctrl+c:终止操作

三,node.js模块化开发

这里先要讲讲js在使用时的两个弊端。文件依赖命名冲突
第一点:js的文件有可能多次引用,例如,轮播图.js引用了scroll.js,scroll.js又引用了jQuery.js,而一旦缺少那个文件都运行不了。
第二点:js文件引用时,全局变量是可以互相访问的,一旦命名重复,就会被覆盖!

而node,js模块化开发,就有专门代码说明引用了谁,不需要再去分析引用了谁。模块化开发还体现在:类似于机械设计中的零部件开发设计一样,先把能够实现各个功能的模块设计出来,然后整合在一起就成为整机了。并且,取出其中的部分模块,不会影响到其他模块的功能。
在这里插入图片描述
Node.js规定一个js文件就是一个模块,模块内部定义的变量和函数在 默认情况下在外部是无法得到的。
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块
在这里插入图片描述
想要导出,就把它设置为exports对象的属性,
想要导入,采用require方法,返回值是一个exports对象。(当然,参数是路径和node.js文件名)
在这里插入图片描述
在这里插入图片描述

四,系统模块

在这里插入图片描述
也就是node.js自身写好了一些常用的基本的模块,我们直接调用就可以使用。
一,文件读取模块
在这里插入图片描述

let fsObject=require('fs')
//引入node的fs模块,fsObject就是那个引入的对象,
// 它包含很多方法,其中就有读取文件的方法:readFile
fsObject.readFile('./text.txt', 'utf-8',(err,doc)=>{
	//如果文件读取出错,err是一个对象,包含错误信息
	//如果文件读取正确 ,err是null
	//doc是问价读取的结果
	console.log(err)
	console.log(doc)
})

在这里插入图片描述
运行后,确实读取到txt文件的内容了。
二,文件的写入模块

let fsObject=require('fs')
///引入node的fs模块,fsObject就是那个引入的对象,
// 它包含很多方法,其中就有写入文件的方法:writeFile
fsObject.writeFile('./write.txt','即将写入的内容',err=>{
	if (err!= null){
		console.log(err);
		return
	}
	//当文件写入失败时,err是个对象,里面保存错误信息
	//当文件写入成功时,err是null
	//当文件写入时,还没有这个文件,则会自动创建一个
	console.log(err)
	console.log('文件写入成功')
})

在这里插入图片描述

## 三,系统的path路径操作
在这里插入图片描述
事情的起因时不同的操作系统,路径的拼接符号不一样,windows是/都可以,linux是/才可以。

//假如我想读取这个路径下的文件:test1\test2\text.txt
let pathObject =require('path')
const path=pathObject.join('test1','test2','text.txt')
//取得拼接好的路径,它会自动检测是windows还是linux环境,然后返回对应的路径
let fsObject=require('fs')
fsObject.readFile(path, 'utf-8',(err,doc)=>{
	console.log(err)
	console.log(doc)
})

在这里插入图片描述
四,相对路径和绝对路径
在这里插入图片描述
比如这里写的就是相对路径,程序运行时,会把当前路径+相对路径做一次“运算”,以此来找到绝对的路径,然后运行程序。
也就是说,其实我们直接写绝对路径是最安全的,可以避免电脑找不到正确的路径。
在命令行中就有一个参数,里面 正好保存着当前的地址:__dirname (注意是两个下划线)
于是就可以利用path.join把这个当前路径和绝对路径合并起来得到文件的绝对路径了!!

//假如我想读取这个路径下的文件:test1\test2\text.txt
let pathObject =require('path')
let fsObject=require('fs')
const path=pathObject.join( __dirname ,'test1','test2','text.txt')
fsObject.readFile(path, 'utf-8',(err,doc)=>{
	console.log(err)
	console.log(doc)
})

在这里插入图片描述

五,node.js的第三方模块

第三方模块,就是别人写好,我们拿过来就可以直接使用的模块。又称作包。

  • 以js文件的形式存在,提供实现项目具体功能的api接口。
  • 以命令行工具的形式存在,以辅助项目开发。

那如何获取第三方模块呢?
有一个网站是第三方模块的存储和分发仓库:npmjs.com
这个网站提供了一个node的第三方模块管理工具:npm(node package manager)
当我们需要下载什么第三方模块时,我们只需要在命令行中输入:npm install 模块名称
默认情况下会下载到命令行的当前目录下面。
卸载第三方模块:npm uninstall 模块名称
这种方式是本地安装,也就是只有当前工作目录下的项目使用。
对于库文件,我们通常是采用本地安装,而对于命令行工具,则是采用全局安装,毕竟下回项目也要用不是?

六,命令行工具:nodemon的安装

nodemon是一个命令行工具,用来辅助项目开发。
没有它的时候,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。
而安装它之后,就会监听该文件的保存操作,一旦文件保存完成,就会重新执行该文件!
1,下载:npm install nodemon -g
加了-g,就是全局安装的意思。
2,在命令行中用nodemom替代node命令。

在这里插入图片描述

七,第三方模块 nrm

它可以访问国内的模块库,这样一来,安装第三方库的时间会大大缩短。
先下载安装nrm

  1. 使用npm install nrm -g来下载
  2. 查询可下载地址列表nrm ls
  3. 切换nrm下载地址nrm use 下载地址名称

在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值