作用:
- 开发后端
- 读写数据库,创建使用命令行工具辅助前端开发
- 基于Express框架,可以快速构建web应用
- 基于Electron框架,可以构建跨平台的桌面应用
- 基于restify框架可以快速构建API接口项目
运行环境
注意:
- 浏览器是 JavaScript 的
前端
运行环境。(浏览器是客户端安装的软件) - Node.js 是 JavaScript 的
后端
运行环境。(正常情况下,Nodejs要安装到服务器上) - Node.js 中无法调用 DOM 和 BOM 等 浏览器内置 API。
模块化:
模块化的优点
- 更利于维护;
- 更好的复用性;
自定义模块导入导出:
- 文件被导入,会立即执行
- 变量如果要共用,需要在源文件中导出
module.exports.变量 = 变量
- 变量要共用,需要在使用文件中接受
let obj = require('文件路径')
注意:导入模块必须带路径,即便两个js文件在同一个目录,也要加“./”前缀必须带,后缀可以省略
通过 module.exports = 导出的内容, 导出内容
通过 require(’./a’); 导入内容
内置模块
- Node 环境自带的模块;安装完Node即可直接使用
- .Node内置模块有很多,具体参见 http://nodejs.cn/api/
fs模块
fs.readFile()
作用:读取文件(获取文件里面的内容)
这是一个异步方法
事例:
fs.readFile('文件路径', [utf-8], (err, data) => {
// 读取无错误,err=null; 读取有错误,err=错误对象
// data 表示读取的结果
})
fs.writeFile()
作用:写入内容
这是一个异步方法
作用:写入内容
事例:
const fs = require('fs') //导入内置模块
//写入内容
fs.writeFile('文件路径', '123', err => {
//写入成功err为null 写入失败,err就是对象
if (err) return console.log(err.name, err.message)
console.log('恭喜您,写入成功!')
})
// 这个写入方法也是异步
console.log('我是最后一行代码')
path模块
path.extname() 获取路径中的后缀
// 导入模块
const path = require('path')
//定义一个路径
let url = 'http://www.baidu.com/index.html'
//1.payh.extname() 获取后缀名 .html
let name1 = path.extname(url)
console.log(name1)
path.basename() 获取基础名称
// 导入模块
const path = require('path')
//定义一个路径
let url = 'http://www.baidu.com/index.html'
// 2.path.basename() 获取基础名称 index
let name2 = path.basename(url, name1)
console.log(name2)
path.join() 拼接给出的路径
- Node中,有一个全局变量 __dirname ,它表示当前 JS 文件所在的绝对路径
const fs = require('fs')
const path = require('path')
// path.join('')能够拼接路径
url = path.join(__dirname, './txt/001.txt')