如何在golang中编译javascript代码并获得详细错误

如何在golang中编译javascript代码并获得详细错误,go,Go,我正在为一个项目使用go语言。我需要在go中运行一段js代码。我知道有个包裹叫奥托。我的问题是如何获取js代码的详细错误消息。例如: src :=` abc = 2 + console.log("The value of abc is " + abc) ` 当我做某事时,让我们说compile(src) 然后,我将得到以下错误: 在第二行错过了什么,错过了“;”在第三行。 就像编译器所做的那样 在发布问题之前,我已经尝试使用了otto的编译,返回的错误为零。 使用上

我正在为一个项目使用go语言。我需要在go中运行一段js代码。我知道有个包裹叫奥托。我的问题是如何获取js代码的详细错误消息。例如:

src :=`
      abc = 2 + 
      console.log("The value of abc is " + abc)
 `
当我做某事时,让我们说
compile(src)

然后,我将得到以下错误: 在第二行错过了什么,错过了“;”在第三行。
就像编译器所做的那样

在发布问题之前,我已经尝试使用了otto的编译,返回的错误为零。 使用上述代码的Otto的
func(self-Otto)Run(src interface{})(Value,error)
将返回错误,但如果代码

abc = 9
abc = 2 + 
console.log("The value of abc is " + abc) 

对于
func(self-Otto)Run(src-interface{})(Value,error)
func(self-Otto)Compile(filename-string,src-interface{})(*Script,error)
错误为零

。一个简单的谷歌“golang otto”提供了一个相当不错的自述文件。读一下

然后你会发现奥托

func (self *Otto) Compile(filename string, src interface{}) (*Script, error)
这是最好的了。运行该命令,查看返回的错误值


谢谢你的回答。但我认为你在给我答案之前没有尝试你所说的。在发布问题之前,我尝试了func(self*Otto)Compile(文件名字符串,src接口{})(*脚本,错误)。错误为零。您的示例中没有一个是Javascript中的错误。JS中不需要分号。您的示例实际上将console.log的结果增加了2+。我打赌您在运行期间的错误是“abc未定义”,因为您在设置之前尝试在console.log调用中使用abc。不是语法错误,因为您可能以其他方式定义了它。
type Error struct {
}

An Error represents a runtime error, e.g. a TypeError, a ReferenceError, etc.

func (err Error) Error() string

Error returns a description of the error

func (err Error) String() string

String returns a description of the error and a trace of where the error occurred.