Skip to content

参考PyExecJS,提供GO调用javascript的能力

Notifications You must be signed in to change notification settings

cokeBeer/execjs

Repository files navigation

go-exec-js

Introduction

参考PyExecJS,提供了在go语言里调用javascript的能力。由于go是强类型语言,所以在迁移的时候使用interface{}作为替代传递任意类型的参数。

Requirement

需要本地path里面配置了node。

Install

go get -u github.com/cokeBeer/execjs

Usage

可以使用Eval方法获取表达式的值,这将输出12

output, err := execjs.Eval(`1+"2"`)
if err != nil {
    log.Fatal(err)
}
fmt.Println(output)

可以使用Compile方法编译一个Context,然后调用。这将输出3

c, err := execjs.Compile(`function add(x, y) {
    return x + y;
    }`)
if err != nil {
    log.Fatal(err)
}
output, err := c.Call("add", 1,2)
if err != nil {
    log.Fatal(err)
}
fmt.Println(output)

更多用法参见测试文件execjs_test

注意:因为返回的是interface{}类型的变量,使用时要进行类型断言,例如

output.(string) //这将输出值变为string类型
output.([]interface{}) //这将输出值变为slice类型

Thanks to

PyExecJS

About

参考PyExecJS,提供GO调用javascript的能力

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages