node特点
- Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
- Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
内置对象
分类
- 全局对象:何处都能访问
- 核心对象:向系统索要,引入即可
- 自定义对象:按路径引入
process(全局对象)
- process.env获取系统的变量
- process.argv => [node绝对路径,文件的绝对路径,1,3]
let num2 = process.argv[3];
let sum = num1 + parseInt(num2);
console.log(sum)
__dirname/__filename(全局变量)
console.log(__dirname);
// 输出: /Users/mjr
console.log(path.dirname(__filename));
// 输出: /Users/mjr
console.log(__filename);
// 输出: /Users/mjr/example.js
console.log(__dirname);
// 输出: /Users/mjr
nodejs实现规范
- commonJs:规范js语言作为后端语言运行的标准
- 模块怎么写:module:
- 1 一个文件就是一个模块
- 2 依赖一个模块 require('模块名')
- 3 需要依赖的模块 module.exports = 给外部依赖的模块
核心对象Path
const path = require('path')
- 拼接并修正路径
path.join(_dirname,路径)
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'
path.join('foo', {}, 'bar');
// 抛出 'TypeError: Path must be a string. Received {}
- 相对路径转绝对路径
path.resolve(_dirname,dist)
-
path.parse(path)
字符串路径转化成对象
path.parse('/home/user/dir/file.txt');
// 返回:
// { root: '/',
// dir: '/home/user/dir',
// base: 'file.txt',
// ext: '.txt',
// name: 'file' }
-
path.format(pathObject)
路径对象转化成字符串
path.format({
dir: 'C:\\path\\dir',
base: 'file.txt'
});
// 返回: 'C:\\path\\dir\\file.txt'
FS
//引入核心对象
const fs = require('fs')
//读取文件
fs.readFile('./02node.js',(err,data)=>{
if(err) throw err;//抛出异常
// console.log(data) buffer数据
// console.log(data.toString('utf8')) 获取字符串数据
})
//写入文件
fs.writeFile('./a.text',"123456",(err,data)=>{
if(err) throw err;
console.log('写入完成')
})
//追加文件内容
fs.appendFile('./a.text','789',(err,data)=>{
if(err) throw err;
console.log('追加完成')
})