Node 19中使用ES6语法导入JSON返回undefined问题求助
解决Node.js 19中ES6导入JSON后访问属性返回undefined的问题
我之前也碰到过完全一样的问题!核心原因是你对JSON模块的导入结构理解有偏差,下面给你两种快速解决的方案:
方案1:改用默认导入(推荐)
当你导入JSON模块时,默认导出的就是整个JSON对象,直接用默认导入就能直接拿到数据:
import config from "./server-config.json" assert {type: 'json'} console.log(config["url"]) // 现在就能正常获取值了
方案2:如果坚持使用命名空间导入,访问default属性
如果你一定要用import * as config的写法,要注意导入的命名空间对象里,实际的JSON数据是挂在default属性下的:
import * as config from "./server-config.json" assert {type: 'json'} console.log(config.default["url"]) // 通过default属性访问JSON内容
另外再确认一下你的server-config.json文件内容,确保确实包含url键,比如:
{ "url": "https://your-server-url.com" }
顺带提一句:Node.js 17.1.0及以后的版本(包括19),--experimental-json-modules这个参数其实已经不需要了,不过它也不会影响功能,你可以选择去掉。
内容的提问来源于stack exchange,提问作者Only-A-User
相关产品推荐
相关产品推荐

