Node开发
什么是Node
Node是一个基于Chrome V8引擎的JavaScript代码运行环境。
安装Node
//命令行操作
node 文件名 //运行文件
clear //清除屏幕
shift + 右击 //当前文件夹用percell打开
Node 模块化开发
- JavaScript开发弊端
JavaScript在使用时存在两大问题,文件依赖和命名冲突。
- 开发规范
- Node.js规定一个JavaScript文件就是一 个模块, 模块内部定义的变量和函数默认情况下在外部无法得到
- 模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。
//模块成员导出
// 模块内部定义变量
let version = 1.0
// 模块内部定义方法
const sayHi = (name) => `恭喜${name}`
// 向模块外部导入数据
exports.version = version
exports.sayHi = sayHi
//在b中导入模块a
// let a = require('./a.js')
let a = require('./a')
//输出b模块的versive变量
console.log(a.version)
console.log(a.sayHi('导入成功!'))
- 模块成员导出的另一种方式
module . exports . version = version ;
module . exports . sayHi = sayHi ;
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准
//导出
const greeting = (name) => `${name}`
const x = 100
exports.x = x
module.exports.greeting = greeting
//当exports对象和moudle.exports对象指向的不是同一个对象时以module.exports为准
module.exports = {
name: 'zhangsan',
}
//导入
const a = require('./04.mode.export')
// console.log(a.greeting('hhahah获取到了'))
console.log(a)
- 两种导出方式的区别
系统模块
- 什么是系统模块
Node运行环境提供的API.因为这些API都是以模块化的方式进行开发的,所以我们又称Node运行环境提供的API为系统模块
系统模块fs文件操作
f: file文件,s: system系统,文件操作系统。
const fs = require ('fs');
读取文件内容
fs.reaFile('文件路径/文件名称'[,'文件编码'],callback) ;
//读取上一级css目录 下中的base.css
fs.readFile('.. /css/base.css', 'utf-8' (err, doc) => {
//如果文件读取发生错误参数err的值为错误对象否则err的值为null
// doc参数为文件内容
if (err == nu11) {
//在控制台中输出文件内容
console. log (doc) ;
}
}) ;
文件的写入操作
fs . writeFile('文件路径/文件名称','数据',callback);
const content = ' <h3>正在使用fs. writeFile写入文件内容</h3>' ;
fs.writeFile ('../ index.html',content, err => {
if (err != null) {
console.log(err) ;
return ;
}
console.log('文件写入成功') ;
}} ;
系统模块path路径操作
- 拼接语法
path.join('路径','路径',...)
//导入path模块
const path = require('path') ;
//路径拼接
let finialPath = path.join('itcast', 'a', 'b', 'c.css') ;
//输出结果itcast\a\b\C.css
console .log (finialPath) ;
相对路径vs绝对路径
-
大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作作录
-
在读取文件或者设置文件路径时都会选择绝对路径
-
使用
_ _dirname
获取当前文件所在的绝对路径
第三方模块
- 什么是第三方模块
别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,于第三方模块通常都是由多个文件组成并且被放置在一一个文件夹中,所以又名包。
获取第三方模块
https://www.npmjs.com/ 第三方模块存储和分发仓库
安装Node后就可以直接使用第三方模块
- 下载: npm install 模块名称
- 卸载: npm unintall package 模块名称
- 全局安装与本地安装
- 命令行工具:全局安装
- 库文件:本地安装
第三方模块 nodemon
nodemon是一个命令行項用以辅助项目开发。
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。
使用步骤
- 使用 npm install nodemon -g 下载它
- 在命令行工具中用nodemon命令替代node命令执行文件
第三方模块 nrm
nrm ( npm registry manager): npm下载地址切换具
npm默认的下载地址在国外,国内下载速度慢
使用步骤
-
使用 npm install nrm -g 下载
-
查询可用下载地址列表 nrm ls
-
切换 npm下载地址 nrm user 下载地址名称