Fandom

冰与火之歌

评论0

实现Lua与Node JS数据对接

Reasno 2014年8月2日 用户博客:Reasno

通过昨天的测试,我们基本可以发现Mediawiki提供的Lua是一个阉割版的Lua,只保留了数据呈现上的能力,但是在发送网络请求等OS操作上则力不从心,以致无法利用Mediawiki的原生API。而我们利用Node JS在Heroku上已经部署成功的zh.asoiaf.Dict则完美实现了对Mediawiki API的请求(感谢萌萌)。在zh.asoiaf.Dict上我们对数据的利用只能基于Javascript,而javascript添加个按钮改个样式还行,做模板化的数据呈现无论效率还是效果肯定不如Lua。

如果将其中的方法抽象出来,就可以实现在云端获取数据,在Wikia服务器上呈现数据的能力。Node JS和Lua之间的通讯,可以使用JSON的形式,流程如下:

Node利用Mediawiki API抓取数据

Node生成JSON

Node将JSON post到Mediawiki:命名空间下某页面

本地Lua使用wm.title.getContent()获取JSON

用Module:JSON解码

Lua实现数据呈现

理想案例

通过这种数据交互方式,我们可以实现很多以前处理不了的事情,比如:

  • Node云端获取全部人物事件的生卒年月。序列化后传递给Lua,生成即时更新的时间轴。

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。

更多维基

随机维基