node.js的学习之路

module.exports = (…) => { … }
这里导出的是一个“函数”,不是一个“对象”
process.env 是 Node.js 提供的一个全局对象,用于访问系统环境变量

koa

🐣 一句话理解:

Koa 是一个轻量、优雅、现代的 Node.js Web 框架,用来快速开发后端服务或接口。


🔧 它能做什么?

Koa 可以用来:

  • 搭建 Web 网站 / 应用
  • 提供 HTTP 接口(REST API)
  • 做后台管理系统接口服务
  • 开发中间层服务(比如前后端分离项目的 BFF)
  • 构建中间件链式调用流程(适合做权限校验、日志、统一错误处理等)

📦 常配合使用的库

名称 用途
koa-router 路由管理
koa-bodyparser 解析 POST 请求体
koa-static 提供静态资源
koa-views 模板引擎支持
koa2-cors 解决跨域问题

path 模块的用法

🐣 一句话理解:

path 是 Node.js 的核心模块,用于处理文件和目录的路径,兼容不同操作系统的路径分隔符,常用于处理相对路径、绝对路径、路径拼接等操作。

📦 引入模块
const path = require(‘path’);

常用方法

  1. path.join([…paths])

    将多个路径拼接在一起,自动处理多余的 /。

    const result = path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
    console.log(result); // /foo/bar/baz/asdf
    

  1. path.resolve([…paths])

    将一系列路径或路径片段解析为绝对路径,从右往左解析,直到遇到绝对路径为止。然后将其左边的所有相对路径拼接上去,最终返回一个标准的绝对路径。

    const path = require('path');
    const result = path.resolve('foo', 'bar', 'baz');
    console.log(result); // /当前工作目录/foo/bar/baz
    
    const result = path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile');
    console.log(result); // /tmp/subfile
    const middlewarePath = path.resolve(app.businessPath, `.${path.sep}middleware`);
    // 打印 /projectRoot/app/middleware

  1. path.basename(p, [ext])

    获取路径的文件名,第二个参数可以去除扩展名。

    path.basename('/foo/bar/baz/asdf.txt'); // 'asdf.txt'
    path.basename('/foo/bar/baz/asdf.txt', '.txt'); // 'asdf'

  1. path.dirname(p)

    获取路径的目录部分。

    path.dirname('/foo/bar/baz/asdf.txt'); // '/foo/bar/baz'

  1. path.extname(p)

    获取文件的扩展名。

    path.extname('index.html'); // '.html'
    path.extname('index.');     // '.'
    path.extname('index');      // ''
  2. path.sep

    获取操作系统的路径分隔符。

    console.log(path.sep); // Windows: '\\',Linux/macOS: '/'

  1. path.normalize(p)

    标准化路径,处理 .. 和 . 等语法。

    path.normalize('/foo/bar//baz/asdf/quux/..');
    // '/foo/bar/baz/asdf'

  1. path.parse(p) 和 path.format(obj)

    parse 将路径解析为对象,format 则相反。

    const parsed = path.parse('/home/user/dir/file.txt');
    console.log(parsed);
    // {
    //   root: '/',
    //   dir: '/home/user/dir',
    //   base: 'file.txt',
    //   ext: '.txt',
    //   name: 'file'
    // }
    
    const formatted = path.format(parsed);
    console.log(formatted); // '/home/user/dir/file.txt's

glob 模块的用法

glob 是 Node.js 中一个用于文件匹配的工具,支持使用类似 shell 的通配符(、?、* 等)快速查找匹配的文件路径,非常适合批量读取文件、构建脚本、配置自动化任务等场景。
npm install glob
引入模块: const glob = require(‘glob’);

示例 1:查找某个目录下的所有 .js 文件

glob('src/**/*.js', (err, files) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(files); // 所有匹配到的 .js 文件路径数组
});

示例 2:同步用法(glob.sync)
glob.sync() 是同步版本,直接返回结果,适合小范围文件匹配。

const files = glob.sync('src/**/*.js');
console.log(files);