Node.js的安装及环境配置及使用
Step1:去官网下载安装包
下载方式:官网下载 根据自己电脑系统及位数选择。
.msi和.zip格式区别:
1、.msi是Windows installer的数据包,实际上是一个数据库,提供安装,修改,卸载你所安装的程序。此外:它还包含有关安装过程本身的信息。例如:安装序列、目标文件夹路径、安装选项和控制安装过程的属性。
2、.zip是一个压缩包,解压之后即可,不需要安装。
Step2:安装
Step1下载完成之后,双击安装包,点击我接受,再点击next
nodejs 如何运行
1.打开node自带的REPL解释器
*原理: nodejs运行环境来执行js
2.打开电脑终端,执行命令 : node[js文件名]
node : 你的操作系统会自动把这个文件的js代码,放入node环境执行
3. vscode : 点击右键选择终端打开, 输入 : node 文件名
原理和上面那个一模一样 , 只是用起来更方便
代码演示
const fn = (a, b) => {
return a + b
}
const res = fn(10, 20)
console.log(res);
服务端js与客户端js区别
1.客户端(前端浏览器)中的js三个部分组成
1.1 ECMAScrpit : js语法规范
变量、数据类型、流程控制、运算符表达式
1·2 DOM : js操作页面内容
document
1·3 BOM :js操作浏览器窗口
window
2.服务端(后端nodejs)中的js
* (1)只有ECMAScript : js基础所学的语法都可以在nodejs中使用
* (2) 没有DOM与BOM : webapi 学习的语法在nodejs中无法使用
fs模块读取文件readFile
/*
前端如何使用插件(js文件) :以axios为例
(1)导包: <script src ="路径"></script>
*/
// 导入模块
const fs = require('fs')
// 2.使用方法
//(1) 同步 : 在方法后面加上Sync(nodejs中很少使用)
// 第一个参数 :文件路径 第二个参数: 文件编码 默认二进制 中文utf-8
// let data = fs.readFileSync('./data/aaa.txt', 'utf8')
// console.log(data);
// (2)nodejs 中所有的方法默认都是异步的
/*
* @description : “读取文件 ”
* @param{string}path 文件路径
* @param{string}encoding 文件编码 默认二进制 中文utf-8
* @param{function}callback (err,data)=>{err: 错误信息, data:文件数据}
*/
fs.readFile('./data/aaa.txt','utf-8',(err,data)=>{
if(err){//you err 失败
//抛出异常 : 会阻止后面代码执行 , 并且告数你错误的位置
throw err
}else{//没有 err 成功
console.log('读取成功');
console.log(data);
}
})
同步与异步区别
1.js编译器解析流程
1.1编译器从上往下依次 “解析” 代码
2.判断代码是同步还是异步
2.1同步代码:立即执行
2.2异步代码:不立即执行,而是放入事件队列中
3.所有的代码执行完毕后,才会执行异步代码
2.同步与异步区别:
(1) 顺序不同: 异步无序,同步有序且优先执行
(2) 效率不同: 异步不会阻塞线程(效率高),同步阻塞线程(效率低)
(3) 代码不同: 异步一般有回调,同步一般没有回调
nodejs相对路径
1.前端相对路径 ./ 与后端nodejs 相对 ./ 是不同规则
前端./ : 固定的,永远相对于当前文件夹所在的路径
后端./ : 不固定的, 相对于执行node命令所在的文件夹路径
*你在哪执行node ./就是那个文件夹
2.nodejs 中文件读写,不能使用相对路径./而应该使用绝对路径
解决方案 : 环境中,每一个js模块默认又啷个全局变量用于获取文件用于绝对路径
——dirname : 当前js模块所在文件夹的绝对路径
——filename : 当前js 模块自身绝对路径
代码演示
```
// 1.导入fs模块
const fs = require('fs')
// 读取文件
fs.readFile(__dirname + '/aaa.txt','utf-8',(err,data)=>{
if(err){
throw err
}else{
console.log(data);
}
})
```
代码演示
// 导入path模块
const path = require('path')
// 2.使用模块
/* 拼接文件: 如果磁盘分隔符写错了,path模块会自动帮你纠正 */
let path1 = __dirname + '//aaa.taxt'
console.log(path1);
let path2 = path.join(__dirname,'//aaa.txt')
console.log(path2);