前言
通过看尚硅谷学习网站学习nodejs
一、node.js是什么?
Node.js是一个能够再服务器运行javaScipt的开放源代码,跨平台JavaScript运行环境
二、如何安装node?
1.安装
安装完毕,查看是否安装成功?终端命令行输入
node -v
如果安装成功,会显示你当前的node版本号
2 常使用的node命令
三 npm是什么?镜像又是什么呢?
1.npm
npm是Node.js的包管理器
2 镜像
npm服务器在国外,国内虽然能用,但是下载东西很慢,由此,很多镜像产生镜像的意义就是把外网资源映射到国内,加快访问速度,内容和国外资源是一致的,每隔一段时间同步一次
3.更换镜像,提升下载速度
⚠️ 如果该项目已经切换成淘宝镜像,则终端命令行再敲打npm命令时
npm -v 修改成 cnpm -v
四 重点标记
1.node执行js文件
node. path(文件路径,绝对路径或者相对路径)
node xxxx.js
2.模块化
/**
* 模块化
*
* - 在node中,一个js文件就是一个模块
* - 在node中,一个js文件就是一个js代码
* 而不是全局作用域,所以一个模块的中的变量和函数中其他模块中无法访问
*
*
* exports.可以使变量或方法让外部访问到
*
*
*
*/
2.引入其他的模块
引入模块使用的函数require()
以引入fs模块为例,
const fs=require("fs")
介绍:
- 在node中,通过require()函数来引入外部的模块,require()
可以传递一个文件的路径作为参数,node将会自动根据该路径来引入外部模块,这里路径,如果使用相对路径,必须以.或…开头 - 使用require()引入模块以后,该函数会返回一个对象,这个对象代表的是引入的模块
- 我们使用require()引入外部模块时,使用的就是模块标识,我们可以根据模块标识来找到指定模块
- 模块分成两大类
- 核心模块
由node引擎提供的模块
核心模块的标识就是,模块的名字 - 文件模块
由用户自己创建的模块
文件模块的标识就是文件的路径(绝对路径或相对路径)
3如何模块里的变量和函数暴露出去
以hello.js文件举例
hello.js 文件
//一般定义变量,如下:定义变量a 该变量是局部变量,外部无法访问
var a ="str"
//定义函数add 该函数是局部变量,外部无法访问
function add (a,b) {
return a+b;
}
//定义全局变量b 该变量可以暴露出去
exports.b ="str"
//定义全局函数mul 该函数可以暴露出去
exports.mul =function (a,b) {
return a*b;
}
//引入hello.js文件
const hello=require("./hello")
//访问变量b,函数mul
console.log(hello.b)
console.log(hello.mul(3,8))
或使用另外的方法:
exports 和module.exports
通过exports 只能使用.的方式来向外部暴露内部变量
exports.xxx=xxx
而module.exports既可以通过.的形式,也可以直接赋值
module.exports.xxxx=xxxxx
module.exports={}
4 文件系统 fs模块
介绍
/**
* 文件系统
* node通过fs模块来和文件系统进行交互
* 使用文件系统,需要先引入fs模块,fs是核心模块,直接引入不需要下载
*
* fs模块中所有操作都有两种形式可供选择:同步 和异步
*
*
* 同步文件系统会堵塞程序的执行,如果没有执行完,不会向下执行代码
*
*
* 文件的写入
* --手动操作的步骤
* 1,打开文件
* fs.openSync(path,flag[,mode])
* -path 要打开文件的路径
* flags 打开文件要做的操作类型
* r 只读的
* w 可写的
* -mode 设置文件的操作权限,一般不传
*
* 返回值
* -该方法会返回一个文件的描述负作为结果,我们可以通过该描述分来对文件进行各种操作
*
* 2,向文件中写入内容
*
* fs.writeSync(fd,string[, position[,encodeing]
* - fd 文件的描述符,需要传递要写的文件的描述符
* -string 要写入的内容
* -position 要写入的起始位置
* encodeing 写入编码,默认utf-8
* 3 保存并关闭文件
*
*/