目录
- 认识node
- node是什么
- 应用场景
- node语法使用
- ES5、ES6
- node核心模块
- 引入第三方模块
- 用户自定义模块
- 环境安装
- 使用node执行的第一个脚本
- 使用node读写文件
- 使用node写入文件
- 使用node读取文件
认识node
Node
是一个针对网络应用开发的平台,是利用 Google
的 JavaScript
运行时引擎 V8
(可以解析和执行 JavaScript
)打造的一个 JavaScript
在服务端的运行环境。
node是什么
Node
不是一门语言。Node
是一个构建于Chrome JavaScript V8
解析引擎之上的一个JavaScript
运行时(环境)。Node
可以解析和执行JavaScript
代码Ecmascript
,基本的JavaScript
语法及API
- 没有
window
、document
之类的DOM
、BOM
元素 Node
类似于浏览器,是一个解析执行js
环境,虽然不处理UI
,但是在该平台中为js
提供了一系列的编程接口
Node
使用事件驱动和非阻塞IO
模型使得它非常的轻量和高效npm
不仅仅可以用来下载node
,还可以用来方便管理和维护第三方包的相关的一些资源包,也可以用来下载浏览器环境相关的一些资源包(Ployfill
,Hack
)
应用场景
- 网站服务器
- 网络爬虫
- JSON API
- 网络游戏服务器
- 命令行工具
node语法使用
ES5、ES6
node核心模块
Node
把绝大多数的 API
都封装到了一个具名的核心模块中,每一个模块就是处理一系列功能的API
集合,每个模块都有一个唯一表示名称进行暴露,我们使用的时候需要进行单独的加载。
例如文件操作的:fs
,网络操作的 http
等,如果要使用,需要先加载模块。
//用户自定义变量名 = require('唯一的核心模块标识名称')
var fs = require("fs")
引入第三方模块
第三方模块由npm
社区提供,我们在使用的时候:
1、使用npm
下载指定的模块
npm install moment
2、通过require
进行引用
var moment = require("moment")
3、查看第三方的API
进行使用。
console.log(moment().format())
console.log(moment().format("YYYY-MM-DD HH:mm:ss"))
用户自定义模块
Node
基于 CommonJS
模块规范实现了自己的一套 JavaScript
模块解决方案,其核心 API
为下面三个
- require
- module
- exports
环境安装
下载 --> 下一步安装 --> 完成
验证
node -v
node --version
npm -v
npm --version
使用node执行的第一个脚本
1、创建一个helloworld
的js
文件
2、在js
里面写一行代码
console.log("hello nodejs");
3、在本文件目录下执行
node helloworld.js
使用node读写文件
使用node写入文件
//引入node的文件操作fs核心模块
var fs = require("fs")
//定义需要写入的字符串
var data = "hello nodejs"
//使用writeFile API,传入写入路径,需要写入的内容,接收回调返回错误信息
fs.writeFile("./data/hello.txt",data,function(err){
//如果错误抛出错误,阻止下面代码执行,
//这里使用throw抛出错误,原因是可能写入错误的原因能有很多种
//可能是文件只读权限,可能是写入失败,throw可以确定文件写入失败的原因
if(err){
throw err
}
//如果成功执行下面代码
console.log("write succeed!")
})
使用node读取文件
我们读取一下刚才我们写好的文件
//引入node的文件操作fs核心模块
var fs = require("fs")
//使用readFile API,传入读取路径,指定格式,接收回调
//第一个参数一定是err,第二个参数是读取的文件内容
fs.readFile("./data/hello.txt",'utf8',function(err,data){
//如果有错误,抛出错误,阻止下面代码的执行,也可以使用return
if(err){
throw err
}
console.log(data)
})
如果不加第二个utf8
这个参数,那么默认是加载16
进制的Buffer
对象。我们如果想要输出字符串,需要手动对返回的data
进行转换,toString()
的默认参数就是utf8
。
//引入node的文件操作fs核心模块
var fs = require("fs")
//使用readFile API,传入读取路径,指定格式,接收回调
//第一个参数一定是err,第二个参数是读取的文件内容
fs.readFile("./data/hello.txt",function(err,data){
//如果有错误,抛出错误,阻止下面代码的执行,也可以使用return
if(err){
throw err
}
console.log(data)
console.log(data.toString())
console.log(data.toString("utf8"))
})