nodejs require 方法

requie 可以引用:
(1) 官方lib库中的文件
(2)npm 库中的文件 js文件
(3) json文件
(4)编译好的c++文件(name.node)

require的使用:
(1)它相当于module.exports的传送门

(2)module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……再把require的结果赋值给某个变量

(3)而且require理论上可以运用在代码的任何地方,甚至不需要赋值给某个变量之后再使用。

require 加载顺序:

(1)首先加载核心模块

(2)试图在require 的名称后面加上.js 去搜索并加载.

(3)试图在require 的名称后面加上.json 去搜索并加载.

(4)试图在require 的名称后面加上 .node 去搜索并加装编译好的c++模块.

在实际开发过程中 如果你的文件和核心库文件同名 加载过程中是会直接忽略你的项目文件。
在 server下有 config.json require("config")

require具体的加载过程是

(1)核心库中如果有config.js 会直接加载 忽略你的文件。

(2)如果没有会检查你的项目中是否有这个.js文件。

(3)如果没有才会去查询 .json 文件。

所以在开发过程中最好使用其相对路径 指明具体文件

### Node.js 中 `require` 未定义问题解决方案 在Node.js环境中遇到`require`未定义的情况通常是因为当前运行环境并非标准的Node.js环境,或是某些配置出现了偏差。为了有效解决问题并确保正常工作,可以从以下几个方面着手: #### 验证执行环境 确认脚本确实是在Node.js环境下被执行而不是浏览器端。因为`require()`函数仅存在于Node.js服务器端环境中,在客户端JavaScript中并不适用[^1]。 #### 使用ES模块语法替代CommonJS 如果项目采用的是ECMAScript Modules (ESM),则应该使用`import`语句来代替传统的`require`方式加载依赖包。例如: ```javascript // CommonJS风格(旧版) const express = require('express'); // ESM风格(新版推荐) import express from 'express'; ``` 对于已经存在的基于CommonJS的老代码库,可以在入口文件顶部加入如下声明以启用混合模式支持: ```javascript /** @type {nodeRequire} */ import { createRequire } from "module"; const require = createRequire(import.meta.url); ``` #### 检查启动命令参数设置 当通过命令行工具如npm scripts或yarn script启动应用时,请留意是否有指定实验性的标志位选项。比如要兼容ES Module特性可能需要用到`--experimental-modules`标记[^2]: ```bash node --experimental-modules index.mjs ``` 另外还需注意文件扩展名的选择,默认情况下`.mjs`会被视为ES module而`.cjs`则是Classic JavaScript File。 以上方法可以帮助排查和修复Node.js程序里出现的`require is not defined`错误提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值