npm是前端工程中经常使用的包管理工具,其中广受欢迎的一个npm包就是starwar-names-hemenc。本文将介绍如何使用这个npm包,并且解析其实现原理。
简介
starwar-names-hemenc是一个包含了300多个来自星球大战的字符名字的npm包。这个包通过API请求获取到的数据,将这些名字存储在了一个json文件中。因为这个数据集非常小,因此可以方便地使用这个npm包来获取到各种各样的starwars名字。
安装
starwar-names-hemenc可以通过npm在命令行进行安装。
npm install starwar-names-hemenc
使用
在你的项目中,你可以通过require语句来引入starwar-names-hemenc,并调用其提供的函数。
const starWarsNames = require('starwar-names-hemenc')
这里starWarsNames是一个包含了各种starwars名字的数组。你可以通过一个随机数来获取一个随机的starwars名字。
const randomStarWarsName = starWarsNames[Math.floor(Math.random() * starWarsNames.length)] console.log(randomStarWarsName)
这里的随机数函数会获取一个0到starWarsNames数组长度的随机数,然后用数组下标访问对应名称。运行上面的代码,随机数函数将返回一个即时的星战名字。
实现原理
starwar-names-hemenc通过请求starwars characters API来获取到数据。请求使用了node-fetch包进行网络通信,它支持node.js和浏览器环境。请求数据后,数据会被解析为一个json对象,并将字符名字存储在一个数组中。
-- -------------------- ---- ------- ----- ----- - --------------------- ----- ---------------- - ----- -- -- - ----- -------- - ----- -------------------------------------- ----- ---- - ----- --------------- ------ ----------------------- -- ------------ - -------------- - ----------------
这里我们使用fetch来访问API,返回Promise对象包含了response。之后我们将response解析为一个json对象,并获取到results属性的数组,该数组包含了所有返回的数据。最后我们将这个数组转化为一个只包含了名字的数组starWarsNames。
总结
通过使用starwar-names-hemenc这个npm包,我们可以方便地获取到所有starwars的名字,并且无需使用其他API访问,因为这个npm包已经将所有数据存储在了一个json文件中。我们还可以通过使用fetch和其他网络请求库来自己实现该功能,如果我们需要精度更高的数据结果,这将是很有帮助的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600553d181e8991b448d115d