Node是一个基于Chrome V8引擎的JavaScript代码运行环境
运行环境
a.js
// 导出
//在模块内部定义变量
let version = 1.0;
//在模块内部定义方法
const sayHi = name => `您好, ${name}`;
// 向模块外部导出数据
exports.version = version;
exports.sayHi = sayHi;
b.js
// 导入
// 在b.js中导入模块a
let a = require('./b.js');
// 输出b模块中的version变量
console.log(a.version);
//调用b模块中的sayHi方法 并输出其返回值
console.log(a.sayHi('hello'));
module.exports.version = version;
module.exports.sayHi = sayHi;
exports是module.exports的别名 (地址引用关系), 导出对象最终以module.exports为准
当exports对象和module.exports对象指向的不是同一个对象时, 以module.exports为准
const greeting = new => hello $(name);
const x = 100;
exports.x = x;
module.exports = {
name: 'zhangsan'
}
Node运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所以我们又称Node运行环境提供的API为系统模块
f:file文件,s:system系统,文件操作系统
const fs = require('fs');
读取文件内容
fs.reaFile('文件路径/文件名称' [,'文件编码'], callback);
示例
//1、通过模块的名字fs对模块进行引用
const fs = require('fs');
// 通过模块内部的readFile读取文件内容
fs.readFile('../css/base.css', 'utf-8', (err, doc) =>{
//如果文件读取发生错误 参数err的值为错误对象 否则err的为null
//doc参数为文件内容
if(err == null){
//在控制台中输出文件内容
console.log(doc);
}
})
写入文件内容
fs.writeFile('文件路径/文件名称', '数据', callback);
const { fstat } = require("fs");
const content = '正在使用fs.writeFile写入文件内容
';
fs.writeFile('../index.html', content, err =>{
if(err != null){
console.log(err);
return;
}
console.log('文件写入成功');
});
为什么要进行路径拼接
path.join('路径', '路径', ...)
// 导入 path 模块
const path = require('path');
//路径拼接
let finialPath = path.join('hello','a','b','c.css');
//输出结果 hello\a\b\c.css
console.log(finialPath);
const fs = require('fs');
const path = require('path');
fs.readFile(path, join(__dirname, '01.helloworld.js'), 'utf8', (err, doc) => {
console.log(err);
console.log(doc);
})
别人写好的,具有特地功能的,我们能直接使用搞得模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被防止在一个文件夹中,所以又名包
第三方模块又两种存在形式:
npm ( node package manager ):node的第三方模块管理工具
全局安装与本地安装
nrm ( npm registry manager ):npm下载地址切换工具
npm默认的下载地址在国外,国内下载速度慢
使用步骤