JSON模块,了解ECMAScript JSON模块的新提议。让我们看看JSON模块是如何工作

  JSON模块,JS JSON

  本文带你了解ECMAScript: JSON模块的新提议。让我们看看JSON模块是如何工作的。希望对你有帮助!

  ECMAScript模块系统(导入导出关键字)默认只能导入JavaScript代码。

  但是,将应用程序的配置保存在JSON文件中通常很方便,因此我们可能希望将JSON文件直接导入ES模块。

  长期以来,commonjs模块格式支持导入JSON。

  好消息是,第三阶段一个名为JSON module的新提案提出了将JSON导入es模块的方法。现在,让我们看看JSON模块是如何工作的。

  

1.导入 config.json

  假设我们有一个config.json文件,内容如下:

  {

  名称:我的应用,

  版本: 1.2版

  }如何将config.json导入ES模块?

  例如,我们创建一个简单的Web应用程序,显示JSON配置文件中应用程序的名称和版本。

  如果尝试直接导入config.json,Node.js会抛出错误。

  从“http”导入http;

  从导入配置。/config . JSON ;

  超文本传送协议(Hyper Text Transport Protocol的缩写)。createServer((req,res)={

  RES . write(` app name:$ { config . name } \ n `);

  RES . write(` app version:$ { config . version } `);

  RES . end();

  })。听(8080);尝试运行应用程序时,node.js引发了错误类型error[err _ unknown _ file _ extension]:未知文件扩展名。json

  当Node.js使用import语句时,默认情况下它需要JavaScript代码。但得益于JSON模块的提出,你可以指明你要导入的数据类型:JSON。

  在修复应用程序之前,我们先来看看JSON模块提案。

  

2. JSON 模块提案

   JSON模块提案的实质是允许使用常规的import语句将JSON数据导入ES模块。

  您可以通过添加导入断言来导入JSON内容:

  从导入jsonObject。/file . JSON assert { type: JSON };Assert {type: json}是一个导入断言,指示模块应该作为json进行解析和导入。

  JSON变量包含解析file.json内容后创建的普通JavaScript jsonObject

  默认情况下,JSON模块的内容是导入的,命名导入不可用。

  JSON模块也可以动态导入:

  const { default:JSON object }=await import(。/file.json ,{

  断言:{

  类型:“json”

  }

  });当动态导入一个模块(包括一个JSON模块)时,默认内容在default属性中可用。

  在这种情况下,导入断言表示JSON类型。然而,有一个更通用的建议是导入断言(目前在第3阶段),它允许导入更多的数据格式,比如CSS模块。

  

3. 启用JSON模块

  现在,我们将JSON模块集成到Web应用程序中:

  从“http”导入http;

  从导入配置。/config . JSON assert { type: JSON };

  超文本传送协议(Hyper Text Transport Protocol的缩写)。createServer((req,res)={

  RES . write(` app name:$ { config . name } \ n `);

  RES . write(` app version:$ { config . version } `);

  RES . end();

  })。听(8080);主模块现在导入config.json文件并访问其值config.name和config.version

  JSON模块在Node.js版本=17.1中工作。您还可以使用-experimental-json-modules标志来启用- experimental-json-modules。

  node-experimental-JSON-modules index . mjs在浏览器环境中,Chrome 91提供JSON模块。

  

4.总结

  默认情况下,ES模块只能导入JavaScript代码。

  得益于JSON模块的提出,可以直接将JSON内容导入ES模块。导入语句后使用导入断言即可。

  从导入jsonContent。/file . JSON assert { type: JSON };可以使用Node.js 17.1的JSON模块,使用实验logo-experimental-JSON-modules-modules,在Chrome 91及以上使用。

  有关编程的更多信息,请访问:编程视频!那就是说JavaScript中JSON模块的细节了。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: