1. 自定义模块:自己写的模块
2. 内置模块:nodejs提供的模块
3. 第三方模块
别人写好的东西, 上传到某一个位置(npm),
我们去 npm 去下载到我们本地, 然后使用
console.log(module);
- Module {
- id: '.',
- // 当前文件所在目录
- path: 'E:\\yizhiyang\\JavaScript2\\date1129:认识node\\code',
- // 记录了, 当前文件 导出的内容
- exports: {},
- // 当前文件完整的文件名
- filename: 'E:\\yizhiyang\\JavaScript2\\date1129:认识node\\code\\04_nodejs的模块化.js',
- // 是否被引入
- loaded: false,
- // 表明当前文件导入了什么模块
- children: [],
- paths: [
- 'E:\\yizhiyang\\JavaScript2\\date1129:认识node\\code\\node_modules',
- 'E:\\yizhiyang\\JavaScript2\\date1129:认识node\\node_modules',
- 'E:\\yizhiyang\\JavaScript2\\node_modules',
- 'E:\\yizhiyang\\node_modules',
- 'E:\\node_modules'
- ]
- }
module.exports.属性名 = 属性值
- //在默认对象内添加属性, 导出的还是一个对象
- module.exports.num = 100
- module.exports.str = 'QF666'
- console.log(module)
- /*
- Module {
- ...
- exports: { num: 100, str: 'QF666' },
- ...
- }
- */
- module.exports = 新值
- node中每一个js文件都自带一个exports这个变量,内部存储指向module.exports 这个对象的地址
- // 方式2, 重新给默认对象赋值, 导出的就是新的值
- module.exports = [100, 200, 300];
- console.log(module);
- // 在默认对象内添加属性, 导出的还是一个对象
- exports.num = 999;
- exports.str = 'QF666';
- console.log(module);
- node中每一个JS文件都自带一个require
- 语法: require('地址')
- 返回值: 返回导入的文件的exports
out.js
- module.exports.num = 100
- module.exports.str = 'QF666'
- module.exports.str2 = 'QF001'
in.js
- // const outObj = require('./out.js')
- // node 导入文件时, 如果文件后缀是 .js 可以省略不写
- const outObj = require('./out');
-
- console.log(outObj);
- fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
- fs.readFile() 方法,用来读取指定文件中的内容
- fs.writeFile() 方法,用来向指定的文件中写入内容
- const fs = require('fs');
- console.log(fs);
fs.readFile('文件路径', '配置项', '回调函数')
文件路径: 必填
配置项: 选填(默认值 buffer, 可以手动配置)
回调函数: 必填
- const fs = require('fs');
-
- fs.readFile('./index.txt', 'utf-8', function (err, data) {
- /**
- * err: 如果读取失败, 会给一个err
- * data: 读取成功,文件的内容
- */
- console.log(err); //null
- console.log(data);
- })
报错信息:
- fs.readFile('./index1.txt', 'utf-8', function (err, data) {
- /**
- * err: 如果读取失败, 会给一个err
- * data: 读取成功,文件的内容
- */
- if (err) return console.log(err);
- console.log(data);
- })
- const fs = require('fs');
- console.log('start');
-
- let data = fs.readFileSync('./index.txt', 'utf-8')
- console.log('data');
-
- console.log('end');
- 按照指定第一个参数去书写文件的内容(覆盖)
- 按照指定的第一个参数没找到, 在指定位置, 新建一个文件出来;新建的值, 就是第二个参数
- const fs = require('fs');
- fs.writeFile('./index.txt', '你好', function (data) {
- console.log('写入完成')
- })
-
- console.log('end')
node给我们提供的操作路径相关的内容
- 绝对路径:C:/a/b/c/d.html
- 相对路径:./d.html ../b/d.html
- const path = require("path");
-
- console.log(path);
- const path = require("path");
-
- const res1 = path.join("a", "/b", "/c", "/d.html");
- console.log(res1); // a\b\c\d.html
-
- const res2 = path.resolve("a", "/b", "/c", "/d.html");
- console.log(res2); // C:\d.html
-
- const res3 = path.resolve("q/w/e", "y.html");
- console.log(res3);
- // C:\Users\41099\Desktop\GY-2203\07周\02天\code\06_node内置模块path\q\w\e\y.html
-
- const res4 = path.parse(
- 'C:/Users/41099/Desktop/GY-2203/07周/02天/code/06_node内置模块path/q/w/e/y.html'
- )
- console.log(res4)
- {
- // 根路径
- root: 'C:/',
- // 当前文件所在的文件夹(目录)路径
- dir: 'C:/Users/41099/Desktop/GY-2203/07周/02天/code/06_node内置模块path/q/w/e',
- // 完整文件名
- base: 'y.html',
- // 文件后缀
- ext: '.html',
- // 文件名
- name: 'y'
- }
- node给我们提供的帮助我们解析url地址信息
- http://localhost:8080/a/b/c/d.html?current=1&pagesize=12
- const url = require("url");
- console.log(url);
- const url = require("url");
-
- const res = url.parse("http://localhost:8080/a/b/c/d.html?current=1&pagesize=12");
- console.log(res)
- Url {
- // 协议
- protocol: 'http:',
- slashes: true,
- auth: null,
- // 域(域名+端口号)
- host: 'localhost:8080',
- // 端口号
- port: '8080',
- // 域名
- hostname: 'localhost',
- // hash值
- hash: null,
- // 携带的参数
- search: '?current=1&pagesize=12',
- // 查询字符串
- query: 'current=1&pagesize=12',
- // 完整路径名
- pathname: '/a/b/c/d.html',
- // 路径(带参数)
- path: '/a/b/c/d.html?current=1&pagesize=12',
- // 完整 url 路径
- href: 'http://localhost:8080/a/b/c/d.html?current=1&pagesize=12'
- }
- const url = require("url");
-
- const res = url.parse("http://localhost:8080/a/b/c/d.html?current=1&pagesize=12", true);
- console.log(res);
- /*
- Url {
- ...
- query: [Object: null prototype] { current: '1', pagesize: '12' },
- ...
- }
- */
- node给我们提供的开启一个服务器的
- 服务器: 一个提供服务的机器 服务: 数据或者文件 机器: 就是一台电脑
- const http = require("http");
-
- console.log(http);
- // 0. 导入内置模块
- const http = require("http");
-
- // 1. 创建一个 服务器
- const server = http.createServer(function (req, res) {
- /**
- * req: 表明前端的请求报文
- * res: 后端返回给前端的响应报文
- */
-
- console.log(req.url)
- // console.log('每当有一个前端访问的时候, 我就会被触发一次')
-
- if (req.url == '/a') {
- res.end('hello~~~pageA')
- }
-
- if (req.url == '/b') {
- res.end('hello~~~pageB')
- }
-
- })
-
- // 2. 给服务器配置一个端口号(0~65535)
- server.listen(8080, () => {
- console.log('服务器开启成功, 端口号 8080')
- })