1.学习node.js让我们对服务端更了解,更好交互
2.Node.js不是一门语言,不是库,不是框架,是一个JavaScript运行时的环境,简单点来说就是Node.js可以解析和执行JavaScript代码,以前只有浏览器可以解析执行JavaScript代码,现在JavaScript可以完全脱离浏览器来运行,一切都归功于Node.js
3.浏览器中JavaScript由以下部分组成
3.1.EcmaScript
基本语法
if
var
function
Object
Array
3.2.BOM
3.3.DOM
而Node.js中的JavaScript没有BOM,DOM,只有EcmaScript,在Node这个JavaScript执行环境中为JavaScript提供了一些服务器级别的操作API,例如文件读写,网络服务的构建,网络通信,http服务器
4.Node.js的特性
4.1事件驱动
4.2非阻塞IO,模型(异步)
4.3轻量和高效
5.npm是世界上最大的开源库生态系统,绝大多数JavaScript相关的包都存放在了npm上,这样做的目的是为了让开发人员更方便的区下载
6.构建于Chrome的V8引擎之上
6.1代码只是具有特定格式的字符串而已
6.2引擎可以认识它,引擎可以帮你去解析和执行
6.3Google Chrome的V8引擎是目前公认的解析执行JavaScript代码最快的
6.4Node.js的作者把Google Chrome中的V8引擎移植了出来,开发了一个独立的Javascript运行时环境。
7.Node.js能做什么(Web服务器后台,命令行工具比如npm(node),git(C语言),hexo(node),对于前端开发工程师来讲,接触node最多的是它的命令行工具,自己写的很少,主要是使用别人第三发的 webpack,gulp,npm)
8.学习Node不仅会帮助大家打开服务端黑盒子,同时会帮助你学习以后的前端高级内容(Vue.js,React,angular)
9.在node中,只能通过require方法来加载执行多个js脚本文件
10.require加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
11.模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题,但是某些情况下,模块与模块是需要进行通信的,在每个模块中,都提供了一个对象:‘exports‘,该对象默认是一个空对象,你要做的就是把需要被外部访问使用的成员手动的挂载到’exports‘接口对象中,然后谁来’require‘这个模块,谁就可以得到模块内部的‘exports’接口对象,还有其他的一些规则 。所有核心模块在使用的时候都必须手动的先使用‘require’方法来加载,然后才可以使用 例如var fs=require('fs')
1.HTML
2.CSS
3.JavaScript
4.简单的命令行操作
4.1 cd
4.2 dir
4.3 ls
4.4 mkdir
4.5 rm
1.先去官网下载https://nodejs.org/en/download/
2.如果已经安装过,重新安装会对之前的进行覆盖,升级
3.安装后要确认Node环境是否安装成功
,打开命令行cmd,输入node --version, 如果能看到版本号,则说明成功
1.创建编写JavaScript脚本文件
我创建了一个名字是1.js的js文件
2.打开终端,定位到脚本文件所属目录
3.输入node+空格+文件名执行对应的文件
注意:文件名不要使用node来命名,最好也不要使用中文
操作如下:
如图:找到js所在文件夹,shift+鼠标右键,会出现一个在此处打开Powershell窗口
输入node+空格+文件名
1.在vs code里安装插件terminal
2.在要执行的js文件中,右键选择open in Integrated Terminal
3.终端再输入node+空格+文件名
1.Node中的JavaScript没有dom,bom操作
2.浏览器中的JavaScript是没有文件操作的能力的,但是Node中的JavaScript具有文件操作的能力
2.2在Node中如果想要进行文件操作,就必须引入fs这个核心模块
2.3在fs这个核心模块中,就提供了所有的文件操作相关的API
例如:fs.readFile就是用来读取文件的
1.使用require方法加载fs核心模块var fs=require('fs')
2.读取文件fs.readFile('')
第一个参数是要读取的文件路径,第二个参数是一个回调函数
error:如果读取失败,error就是错误对象,如果读取成功,error就是null.
data:如果读取成功,data就是读取到的数据,如果读取失败,error就是错误对象
1.js
var fs=require('fs');
fs.readFile('./data/data.txt',function(error,data){
console.log(data);
console.log(data.toString());
});
data.txt
hello node.js
var fs=require('fs');
fs.readFile('./data/data.txt',function(error,data){
if(error){//这里可以通过判断error来确认是否有错误发生
console.log('读取文件失败了');
}else{
console.log(data.toString());
}
});
文件中存储的其实都是二进制数据 0 1
这里看不到0和1,是因为二进制转为16进制,这里我们可以通过toString方法把其转为我们能认识的字符
**第一个参数:要写的文件路径
第二个参数:文件内容
第三个参数:回调函数
成功:文件写入成功,error是null
失败:文件写入失败,error就是错误对象 **
注意:这里的hello.txt本来是不存在的,写入文件自己创建的
var fs=require('fs');
fs.writeFile('./data/hello.txt','hello,world',function(error){
console.log('文件写入成功');
console.log(error);
});
var fs=require('fs');
fs.writeFile('./data/hello.txt','hello,world',function(error){
if(error){
console.log('文件写入失败');
}else{
console.log('文件写入成功');
}
});