Frontend Technical Notes
info
学习并记录 General Frontend Questions
Node.js & CommonJS
1. What is require function in Node.js?
什么是 require?
require()是 CommonJS 的模块加载函数,在 运行时 同步读取、解析与执行目标模块(.js/.json/.node),返回其module.exports。- Node 会做路径解析、文件定位、编译包裹(function wrapper)、并将结果缓存在
require.cache里(同进程二次加载走缓存)。
const fs = require('fs'); // 内置模块
const express = require('express'); // 第三方包
const util = require('./utils'); // 本地文件
const config = require('./config.json'); // JSON 自动解析
// 导出
module.exports = { foo, bar };
2. What is buffer in Node.js?
- 定义: Buffer 是 Node.js 提供的 二进制数据容器(类似字节数组),常用于 流(文件 I/O、TCP、加密、压缩等)。
- 关键点: 固定长度、在 V8 堆外申请内存;与 fs、net、crypto 等 API 深度结合.
// 1. 创建 Buffer
const buf1 = Buffer.from('Hello'); // 从字符串创建
console.log(buf1.toString()); // "Hello"
// 2. 分配固定大小 Buffer
const buf2 = Buffer.alloc(5); // 分配 5 字节,默认全 0
console.log(buf2); // <Buffer 00 00 00 00 00>
// 3. Buffer 拼接
const b1 = Buffer.from('Node');
const b2 = Buffer.from('JS');
const combined = Buffer.concat([b1, b2]);
console.log(combined.toString()); // "NodeJS"
// 4. 编码/解码
const buf3 = Buffer.from('测试');
console.log(buf3.toString('utf8')); // "测试"
console.log(buf3.toString('hex')); // 十六进制形式
3. 在 Node.js 实现 Authentication & Authorization
- 1.注册 Register
- 接收用户信息,
bcrypt.hash加密密码,存入数据库。
- 接收用户信息,
- 2.登录 Login
- 验证邮箱+密码正确性。
- 成功后签发两个令牌:
- Access Token (短有效期,如 15 分钟) -> 放
sub
- Access Token (短有效期,如 15 分钟) -> 放