我想在nodejs中能够调用lua脚本来执行一段逻辑,主要是客户端和服务端有一段同步逻辑,需要逻辑执行相同,客户端这边是用lua写的逻辑,不能进行修改了,服务端这边如果用js重写一样的逻辑,维护两份逻辑是很累的,所以想请教一下如何在nodejs中调用lua执行,谢谢。
node -> c addon -> call lua
@i5ting 有没有现成的npm库?
比较简单的是用子进程来做exec或者spawn
@dayuoba 什么意思?
@rangercyh
var luaProcess = spwan('lua', ['./xxx.lua']); luaProcess.on('error',callback); luaProcess.on('data', callback); luaProcess.on('stderr', callback); or exec('lua ./xxx.lua', function(err, stdout, stderr) { });
一种面向结果,一种面向过程
那服務端換lua做腳本語言不就好了,要不就讓客戶端換js做腳本語言。既然想要邏輯共用,俩還用不同的邏輯語言幹啥
@dayuoba 这个不错哦
@dayuoba 谢谢,但不符合我的要求
@jiangzhuo 服务端和客户端语言不同的情况很常见
如果需要同步顺序执行一个接着一个的逻辑的话,可以:
var execSync = require('child_process').execSync; execSync('lua xxx1.lua'); execSync('lua xxx2.lua'); execSync('lua xxx3.lua');
@DavidCai1993 谢谢,我已经写了lua的nodejs绑定了,可以直接在nodejs里挂C++模块启lua虚拟机执行lua脚本
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
node -> c addon -> call lua
@i5ting 有没有现成的npm库?
比较简单的是用子进程来做exec或者spawn
@dayuoba 什么意思?
@rangercyh
一种面向结果,一种面向过程
那服務端換lua做腳本語言不就好了,要不就讓客戶端換js做腳本語言。既然想要邏輯共用,俩還用不同的邏輯語言幹啥
@dayuoba 这个不错哦
@dayuoba 谢谢,但不符合我的要求
@jiangzhuo 服务端和客户端语言不同的情况很常见
如果需要同步顺序执行一个接着一个的逻辑的话,可以:
@DavidCai1993 谢谢,我已经写了lua的nodejs绑定了,可以直接在nodejs里挂C++模块启lua虚拟机执行lua脚本