【问题标题】:Calling a node js function or script in python在python中调用节点js函数或脚本
【发布时间】:2021-11-02 05:20:48
【问题描述】:

我正在尝试从我的 main.py 文件运行节点 js 脚本,其中还有来自不同文件的其他函数。我的主要目标是在一个 main.py 文件中运行我的应用程序所需的所有功能。我尝试使用js2py,但它因错误而崩溃:

raise Ecma51NotSupported('ArrowFunctionExpression')
pyjsparser.std_nodes.Ecma51NotSupported: ArrowFunctionExpression is not supported by ECMA 5.1.

我也尝试过使用 Naked,但也崩溃了。 我不需要来自这个节点 js 文件的任何数据,也不需要任何东西来运行它拥有的所有脚本或一个函数。 在最好的情况下,它就像 .py 文件一样工作: from python_file import do_some_work
do_some_work()

有什么建议或修复吗?

【问题讨论】:

    标签: javascript python node.js python-requests


    【解决方案1】:

    错误很明显,您使用的是 ECMAScript 5 标准不支持的箭头函数 ((param) => expression),这是 js2py 中的 defualt 使用的。

    据作者介绍,最新版本现在支持使用 eval_js6 (source) 进行 ES6 评估。

    所以要么移除箭头函数并坚持使用 ES5,要么尝试使用这个函数来运行代码。

    【讨论】:

    • eval_js6 没有成功,因为终端显示节点 js 脚本太大并且它自动转向 ES5 的错误再次崩溃。
    【解决方案2】:

    使用 main.py 运行整个节点 js 脚本 import osos.system('node file.js') 成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 2021-08-21
      • 1970-01-01
      • 2018-03-30
      • 2017-08-27
      • 2023-02-09
      相关资源
      最近更新 更多