node.js组成和全局对象global和模块导入导出和系统模块(fs,path)

node.js

1.node.js

node.js是运行在代码环境上的语言;

javascript代码运行在node中,node.js是语言,node是运行环境;

2.node.js组成

js由三部分,ECMAScript,DOM,BOM;

node.js由ECMAScript和node环境下的API;

3.node.js全局对象global

在浏览器中全局对象是window,在node中全局对象是global;

node全局对象的几个方法可以在任何地方使用,global可以省略;

//在控制台输出
console.log();
//设置超时定时器
setTimeout();
//清除超时时定时器
clearTimeout();
//设置间歇定时器
setInterval();
//清除间歇定时器
clearInterval();

4.模块的导出和导入

一个js文件就是一个模块,在模块内定义的变量和函数默认情况下外部无法得到;

node.js提供了exportsrequire关键字用来导出导入模块数据;

//a.js文件
//在模块内定义一个箭头函数
const add = (n1,n2)=>n1+n2;
//将add导出,让其他模块使用
exports.add = add;
//b.js文件
//在b.js模块内引入a.js
let a = require('./a.js');
//输出a模块的的加法函数
console.log(a.add(100,200));//控制台输出300

注意: 在b.js文件中导入的实际就是a.js中的exports对象;

1.模块导出的方式有两种:

​ (1).exports.属性名 = 属性值;

​ (2).modules.exports = 值;

2.exports是module.exports的别名(地址引用关系),导出对象最终是以module.exports为准;

​ (1).不能写exports = {}; 错误写法

​ (2).exports.fn = function(){ } 和 module.exports.fn = function(){} 二者等价;

3.当module.exports以{ }方式整体导出时会覆盖exports的属性和方法;

4.若一个模块没有导出任何成员,导入的时候是空对象;

5.系统模块

5.1 fs模块:文件操作

fs.readFile()读文件

//1.通过模块名字fs对模块进行引用
const fs = require('fs');
//2.通过模块内部的readFile读取文件内容
//第一个参数是路径,第二个参数是字符编码可以省略,第三个是回调函数
fs.readFile('路径','utf-8',(err,doc)={
    //如果文件读取出错err,是一个对象,包含错误信息
    //如果读取正确,err为null
    console.log(err);
	//doc参数是文件读取的结果
	console.log(doc);
})

fs.writeFile() 向文件中写入内容(覆盖)

//1.通过模块名字fs对模块进行引用
const fs = require('fs');
//第一个参数是路径,第二个是写入的内容,第三个是回调函数
fs.writeFile('./demo.txt','将要写入的内容',err=>{
    //回调函数就一个参数err,内容写入错误时,不为null 包含错误信息
    if(err != null){
        console.log(err);
        return;
    }
    //会创建一个新的文件
    console.log('文件写入成功');
})

fs.appendFile()向文件中追加内容

const fs= require("fs");
fs.appendFile('./demo.txt', '追加的内容', function (err) {
  //追加错误时,抛出异常,throw 语句创建自定义错误
    if (err) throw err;
    //数据被添加到文件的尾部
    console.log('添加成功'); 
});

fs.mkdir()创建目录

const fs= require("fs");
// 创建makemulu目录,无论是否存在
fs.mkdir('makemulu', { recursive: true }, (err) => {
  if (err) throw err;
});
5.2path模块:路径操作

path.parse() 解析路径,获取路径信息 大致就这些

// Url {
//     protocol: null,
//     slashes: null,
//     auth: null,
//     host: null,
//     port: null,
//     hostname: null,
//     hash: null,
//     search: '?name=zhangsan&age=20',
//     query: 'name=zhangsan&age=20',
//     pathname: '/',
//     path: '/?name=zhangsan&age=20',
//     href: '/?name=zhangsan&age=20' }

path.join() 路径拼接

//先获取系统模块path
const path = require('path');
const newPath = path.join('123','456','789');
console.log(newPath);//   123\456\789

1.不同系统路径分隔符不统一;

2.防止路径拼接少写斜杠问题;

3.使用绝对路径进行路径拼接__dirname;

绝对路径拼接用法

const fs = require('fs');
const path = require('path');
console.log(__dirname); //打印结果是本文件夹的绝对路径

console.log(path.join(__dirname,'01.js'))
fs.readFile(path.join(__dirname,'01.js'),'utf8',(err,doc)=>{
    console.log(err); //读取正确的话就是 null 否则就是一个对象包含错误信息
    console.log(doc);  //读取到绝对路径的文件里边的内容
})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值