在前端开发中,我们通常会使用很多第三方库和工具来提高开发效率和增强应用功能。其中,npm作为js的包管理器,为我们提供了非常丰富和方便的包和工具库。今天,我们要介绍的是一个 非常实用的npm包:poe-watch-api, 它能够提供PoE的官方交易API的实时更新数据。
本篇文章会针对npm包poe-watch-api的基本使用说明及常用方法做深入探讨,同时也会分享如何在实际开发中使用poe-watch-api,并结合一些实际案例来帮助大家更好地理解和掌握这个包的使用方法。
1. 什么是poe-watch-api
poe-watch-api 是一个Node.js库,它提供了对PoE的官方交易API的实时更新数据。该API为玩家提供了PoE中的所有基本虚拟交易,例如:挂单、物品修饰符等。API的细节可以在PoE官方网站的API文档页面中找到。
2. 安装poe-watch-api
poe-watch-api 可以通过npm进行安装,并将连接到PoE的官方API。通过以下命令可以安装poe-watch-api并将其添加到项目的开发依赖中:
npm install --save-dev poe-watch-api
3. 使用poe-watch-api
poe-watch-api实现了一些方法来使用PoE的官方交易API的实时更新数据。以下是本篇文章选取的几个常见的方法介绍:
3.1. getPathofExileAPI
getPathofExileAPI是启动PoE官方API的方法。以下是一个简单的例子:
const { getPathofExileAPI } = require('poe-watch-api'); async function main() { const poeApi = await getPathofExileAPI({ league: 'Standard' }); } main();
在上述代码中,我们使用了 getPathofExileAPI
方法获取到了一个能够连接到PoE官方API的 poeApi
对象。同时,我们在方法的选择参数中指定了一个联赛 League:'Standard'。
3.2. 获取任务
使用 tasks()
方法获取一个任务(task)。 以下是一个代码示例:
-- -------------------- ---- ------- ----- - ----------------- - - ------------------------- ----- -------- ------ - ----- ------ - ----- ------------------- ------- ---------- --- ----- --------- - ----- --------------- ------------- --------- --- - -------
在上述代码中,我们使用 poeApi.tasks()
方法获取了任务的状态并将其打印输出。
3.3. 监视公共stash
通过 watchPublicStash()
方法我们可以在不中断时获取到软连档案(公共 stash), 以下是一个代码示例:
-- -------------------- ---- ------- ----- - ----------------- - - ------------------------- ----- -------- ------ - ----- ------ - ----- ------------------- ------- ---------- --- ----- --------- - ----- --------------------------------- -- - -- ----------------- ---------------- -------- - - ---------------- --- ---------------- -- -- - ----- ------------ ------------------ ----------- -- ------ - -------
在上述代码示例中,我们使用 poewatch-api
在启动后进行请求从 Standard
游戏联赛的公共stash数据,并在有新的stash时做出一些相应的操作,同时超过5000ms后执行 stopWatch()
关闭操作。
4. 示例应用
接下来,我们将通过一个简单的实际案例来解释如何在开发过程中使用 poe-watch-api
。我们创建一个 Node.js 应用程序,使用 poe-watch-api
监视正在进行的交易,每小时将查询1次数据库,当然也可以查询一次其他存储技术,例如 redis等。
以下是案例程序的目录结构:
├── README.md ├── index.js ├── package-lock.json └── package.json
接下来我们编写两个辅助模块来完成以上案例:
db.js
在 db.js
中,我们使用sqlite3先创建一个数据表,并部分实现了已被监视物品的添加与从已监视物品移除的功能。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ----- -- - --- ----------------------------- ----- --- - ----- ------- -- --- ----------------- ------- -- ----------- ------- ----- -- - -- ----- ------------ ---- ---------- -- -- ----- --- - ----- ------- -- --- ----------------- ------- -- ----------- ------- ----- ---- -- - -- ----- ------------ ---- ------------- -- -- ----- --- - ----- ------- -- --- ----------------- ------- -- ----------- ------- ----- ----- -- - -- ----- ------------ ---- -------------- -- -- ----- ------- - ----- -- -- - ----- ----- ------ ----- -- --- ------ ------------- - ------ ----- ------------- ----- ---- ----- ------- ----------- -------------- - --- -- ----- ----------------- - ----- ------ -- ---- ------- -- ------ ---- --------------------- -------------- ----- ------ --- -- ---- ------------- ------------------- ---------- -- ----- ---------------------- - ----- ------ -- ---- ------- ---- ------------- ----- ------ - - --- ------------- - --- ------------- ------------------- -- -------------- - - ---- ---- ---- -------- ------------------ ----------------------- --
poe-watch-api.js
在 poe-watch-api.js
中,我们实现了一个处理公共stash数据中的已监视物品的函数,并实现了每小时更新数据的周期任务。
-- -------------------- ---- ------- ----- - ----------------- - - ------------------------- ----- -- - ---------------- ----- --------------------------------- - -------- ----- --------------- - ----- -- -- - ----- ---- - ----- -------------- - ---- ----------------- ------ ----------- ------- -------------- ---- -- -- -- ------- --------- -------------- ----- ---- -- ----- ------------- - -- ------- --------- ---- -- -- ------------------------------------- -- ------------------ ------------- -- ------ --- ------------------ -- -------- --- -------------------- -- ------------------------------- - -- ----- ---------------- - ----- -- -- - ----- ------ - ----- ------------------- ------- ---------- --- ----- --------- - ----- ----------------------------- --------- -- - ----- ------------ - ----- ------------------ ----- --------------- - ---------------------- -- ----------------------- -- ------------------ ------------- -- ------------ --- ------------------ -- ------------- --- -------------------- -- ------------------------------------ - - -- ------------ ------ ------------------------- -------- --------- --- -- ------------------- -- --- ------ ---------- -- ----- ------------------ - ----- -- -- - ----- ------------------ - ----- -- -- - -- --------- ----- ------------ - ----- ------------------ --------------------- ---------------------- ------- ------------- -- ----------------------- -------- ----- ---------------- - --------------------- - ------ -- -------------------------------------------------- --- ------ - ------- --------- ---- - -- ------------- - ----- -------- - ----- ------------------- ------ ----------- ----- ----- ----- --------- ----- - ------ ----- -- ------- - ------- -------- -- ------------- -- --- ----- --------------- - ----------------------------- -- - -- ------------------- --- ----- ------ ------ -- ---------------------------- --- -------- ------ ------ -- --------- ----- - -------- -------------- - - ------------------- -- --------------- - ---------------- - ----- ------ ------ ------ ----- --- ------------ ------ ------------------------- -------- --------- --- ---- ----------- -- - -- --------------------- ------------------------------- ----------------------------------- -- -------------- - - ----------------- ------------------- -------------- --
index.js
在应用程序的入口点 index.js
中,我们负责调用以上编写的两个辅助模块,并创建一个启用服务的周期任务,代码如下:
-- -------------------- ---- ------- ----- - ----------------- ------------------- ------------- - - --------------------------- ----- -- - ---------------- ----- -------- ------ - -------------------- -- -------------- ----- ------------- --------------------- ----- ---------- ----- ------------------- --------------------- ------- ----- ------------ ----- --------------------- - ----------------------------
以上代码实现了每小时更新一次已监视的数据,检查更新的数据中是否存在已被监视的物品,并将匹配的物品数据通过 console.log 输出。
5. 总结
本篇文章的重点介绍了npm包poe-watch-api的基本使用以及实际开发中的应用案例。我们了解了如何通过 getPathofExileAPI
方法启动PoE官方API,如何使用 watchPublicStash
方法监听已经开放的交易,也了解了如何在实际业务中使用这个npm包。在实际开发中,如果需要编写针对PoE数据监控的应用程序,我们可以将以上所示的实现思路进行适当的改进和扩展,从而为我们的项目带来更高效和便捷的数据处理。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b4e51ab1864dac66899