Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何读取js文件并使用nodejs将默认导出模块解析为JSON_Javascript_Node.js_Json - Fatal编程技术网

Javascript 如何读取js文件并使用nodejs将默认导出模块解析为JSON

Javascript 如何读取js文件并使用nodejs将默认导出模块解析为JSON,javascript,node.js,json,Javascript,Node.js,Json,在Node.js中,我希望能够读取包含ES模块语法的sample.js文件,并解析默认导出 sample.js 从“foo”导入foo; 常数条=[ { 姓名:“荷马”, }, { 姓名:“玛姬”, }, { 姓名:“巴特”, }, { 姓名:“丽莎”, }, { 姓名:“玛姬”, }, ]; 导出常量addOne=(num)=>num+1; 导出默认栏; 到目前为止,我的node.js脚本只是读取文件内容并将其输出到console.log。以下是我的node.js脚本: index.js c

在Node.js中,我希望能够读取包含ES模块语法的sample.js文件,并解析默认导出

sample.js

从“foo”导入foo;
常数条=[
{
姓名:“荷马”,
},
{
姓名:“玛姬”,
},
{
姓名:“巴特”,
},
{
姓名:“丽莎”,
},
{
姓名:“玛姬”,
},
];
导出常量addOne=(num)=>num+1;
导出默认栏;
到目前为止,我的node.js脚本只是读取文件内容并将其输出到console.log。以下是我的node.js脚本:

index.js

const fs=require(“fs”);
fs.readFile(“./sample.js”,“utf8”,(err,data)=>{
如果(错误){
控制台错误(err);
返回;
}
控制台日志(数据);
//如何从数据解析默认导出?
});
如果我能够在读取文件后以某种方式获得字符串
[{“name”:“Homer”},{“name”:“Marge”},{“name”:“Bart”},{“name”:“Lisa”},{“name”:“Maggie”}]
,那么我就可以简单地执行
JSON.parse
并获得我需要的数据。但这似乎不是一项微不足道的任务。如何读取原始js文件并将默认导出解析为JSON?

您只需

import data from './sample.js';

console.log(data);

另外,确保在
package.json
中有这样一行:
“type”:“module”
如果有原因不能按照其他评论者的建议执行,您可以使用类似babel或acorn的ast生成器。显示acorn对代码的解析。您可以在树中搜索要查找的值,拉出子字符串。

为什么不使用
require()
import
实际导入文件,然后直接访问导出的值?谢谢。我有一种感觉,我在做一些奇怪的事情。最后我使用了
require('sample')。默认值
感谢您的建议。不幸的是,我无法遵循您的建议,因为我的一些节点模块不能以这种方式很好地工作。但是,我可以在node.js脚本中使用
esm
npm包,并且可以使用
import
,我也在考虑这个问题,但很高兴我不必这么做,因为我可以简单地
要求
导入
:)