Python3 调用 js 函数
admin
2023-07-11 14:04:41
0

【PyExecJS】

#encoding: utf-8
#author: walker
# date: 2019-03-13
# summary: 利用 PyExecJS 调用 js 函数

import execjs

JSCode = r'''
            function add(x, y) {
                return x + y;
            }
'''
CTX = execjs.compile(JSCode)

def test():
    # 直接使用
    print(execjs.get().eval('3+2'))

    # 调函数使用
    print(CTX.call('add', 3, 6))

if __name__ == '__main__':
    test()


【Node.js】

#encoding: utf-8
#author: walker
# date: 2019-03-13
# summary: 直接用 Node.js 调用 js 函数

from subprocess import check_output

def test():
    # 直接调用
    bytesTxt = check_output('node -e console.log(3+2)', timeout=100)
    print(bytesTxt.decode('utf8').strip())
    
    # 用 node 直接执行 js 脚本
    bytesTxt = check_output(['node','t.js', '3', '6'], timeout=100)
    print(bytesTxt.decode('utf8').strip())


if __name__ == '__main__':
    test()
  • t.js

function add(x, y) {
    return x + y;
}

var args = process.argv.splice(2);
console.log(add(parseInt(args[0]), parseInt(args[1])));


【Node.js 指定函数】

#encoding: utf-8
#author: walker
# date: 2019-03-14
# summary: 直接用 Node.js 调用指定 js 函数

from subprocess import check_output

JSCode = r'''
            function add(x, y) {
                return x + y;
            }
            
            function sub(x, y) {
                return x - y;
            }
            
            function foo(x) {
                return x;
            }
'''

def test():
    jscode = JSCode + 'process.stdout.write(add(3, 2).toString())'
    rtn = check_output('node', input=jscode, universal_newlines=True, timeout=100)
    print(rtn)


if __name__ == '__main__':
    test()


【相关阅读】

  • Python之系统交互(subprocess)


*** walker ***

相关内容

热门资讯

快评|卫星互联网将如何改变生活... 近日,我国在西昌卫星发射中心使用长征二号丁运载火箭,成功将卫星互联网技术试验卫星发射升空。值得关注的...
1999元买一个“创世成员”,... 图片来源:网络 出品 | 搜狐科技 作者 | 张莹 自2026年6月1日起,天涯社区将正式启用tia...
用了40年的电脑,黄仁勋要推翻... “英伟达如果成功,它将成为继微软(PC时代)、苹果(移动互联网时代)之后,AI时代的第三个平台级垄断...
原创 时... 2019年马云退休后,数年没有和外国元首互动的阿里巴巴,最近重启“民间外交”。 浙江当地官方媒体报道...
生命是如何产生的?如果宇宙在熵... 前言 生命为何能从无序中诞生?宇宙不是应该越来越混乱吗?这个问题困扰了无数人,也为神创论留下了舞...
美伊谈判濒临破裂之际,伊朗议长... 因为以色列持续对黎巴嫩进行军事打击,伊朗宣布暂停同美国的谈判。不过美国总统特朗普称,对话仍在继续。谈...
罕见!以军政策发生“重大转变” 新华社北京6月1日电 题:罕见纵深推进,以军对黎行动会否搅动美伊谈判新华社记者刘品然 阚静文 席玥以...
山西太原发现一处新石器遗址,出... 山西省太原市文物保护研究院协同相关科研机构,近期在太原市阳曲县西盘威村发现一处新石器时代重要遗址——...
伊媒发布穆杰塔巴罕见照片 伊朗塔斯尼姆通讯社6月1日发布了一张最高领袖穆杰塔巴的照片。照片中,穆杰塔巴面露笑容,抱着一个婴儿。...
福建“泡药杨梅”曝光后,浙江杨... 这两天,浙江本地杨梅少量进入市场。虽然受到此前福建 “泡药杨梅” 事件影响,市场整体销量相比去年同期...