nodejs导入文件模块和导入文件夹

在 Node.js 中,导入文件模块和导入文件夹的方式略有不同,但都很常见。下面是详细说明:


✅ 一、导入文件模块

1. CommonJS(.js)方式:

js 复制代码
// 假设有个模块文件叫 `utils.js`
const utils = require('./utils'); // 不需要写 .js 后缀
utils.sayHello();

2. ES Module(.mjstype: "module"

js 复制代码
// 假设在 `package.json` 中设置了 `"type": "module"`,或者文件是 `.mjs`
import utils from './utils.js'; // 必须写后缀 `.js`
utils.sayHello();

✅ 二、导入文件夹模块

Node.js 在你导入一个文件夹时,会按以下顺序查找:

  1. 文件夹下的 package.json 中的 main 字段指定的文件
  2. 如果没有 package.json,尝试加载 index.js / index.mjs / index.json

例子结构:

bash 复制代码
/myModule/
├── index.js

使用:

js 复制代码
// CommonJS
const myModule = require('./myModule');

// ES Module
import myModule from './myModule';

如果你在 myModule 文件夹中有 package.json

json 复制代码
{
  "main": "main.js"
}

那导入时就会加载 main.js 而不是 index.js


✅ 补充说明

  • 相对路径 :用 ./../ 开头
  • 绝对路径模块 :比如 require('fs') 是 Node.js 内置模块
  • 第三方模块 :如 require('express'),默认从 node_modules 查找
相关推荐
程序员Agions30 分钟前
useMemo、useCallback、React.memo,可能真的要删了
前端·react.js
滕青山32 分钟前
Vue项目BMI计算器技术实现
前端·vue.js
子兮曰37 分钟前
深入浏览器指纹:Canvas、WebGL、Audio是如何暴露你的身份的?
前端·浏览器·canvas
月亮补丁38 分钟前
AntiGravity只能生成 1:1 图片?一招破解尺寸限制
前端
何中应43 分钟前
MindMap部署
前端·node.js
NAGNIP1 小时前
程序员效率翻倍的快捷键大全!
前端·后端·程序员
一个网络学徒1 小时前
python5
java·服务器·前端
tiantian_cool1 小时前
Claude Opus 4.6 模型新特性(2026年2月5日发布)
前端
0思必得01 小时前
[Web自动化] Selenium获取元素的子元素
前端·爬虫·selenium·自动化·web自动化
用户5757303346241 小时前
🌟 从一行 HTML 到屏幕像素:浏览器是如何“画”出网页的?
前端