You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中module.exports导出Map后require丢失Map类型问题解决

问题原因

你导出Map时用了module.exports = {NETWORKS_LOOKUP},这相当于把Map包装在了一个普通对象里导出。当你用const NETWORKS_LOOKUP = require("./constants.js")引入时,拿到的其实是这个普通对象,而不是Map实例——所以调用get方法会报错,instanceof Map也返回false,只是打印时能看到对象里的Map结构而已。

解决方案

有两种方式可以解决:

方式一:直接导出Map实例

修改./constants.js的导出代码,直接把Map实例作为module.exports的值:

const NETWORKS_LOOKUP = new Map([
    ["1", "mainnet"],
    ["3", "ropsten"],
    ["4", "rinkeyby"],    
    ["5", "goerli"],
    ["2a", "kovan"],
    ["31337", "Hardhat"]
]);
module.exports = NETWORKS_LOOKUP;

之后用const NETWORKS_LOOKUP = require("./constants.js")引入,拿到的就是Map实例,能正常调用get方法。

方式二:保持对象导出,引入时解构取Map

如果需要在constants.js里导出多个变量,保持原导出方式不变,修改引入代码:

// 解构赋值直接拿到Map实例
const { NETWORKS_LOOKUP } = require("./constants.js");

或者通过对象属性获取:

const constants = require("./constants.js");
const NETWORKS_LOOKUP = constants.NETWORKS_LOOKUP;

这样拿到的就是真正的Map实例,就能正常使用get方法了。

内容的提问来源于stack exchange,提问作者ultramegaok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:30:54