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

时间:2017-09-05 03:06:38

标签: go

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

src :=`
      abc = 2 + 
      console.log("The value of abc is " + abc)
 `

当我做某事时,请说compile(src) 然后我会得到错误: 在第二行错过了一些东西而错过了';'在第三行。
就像编译器一样

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

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)错误均为

1 个答案:

答案 0 :(得分:1)

我打算让你做不充分的研究。一个简单的谷歌“golang otto”带来the Github page.有一个相当不错的README.markdown文档。阅读它。

然后你发现奥托有

func (self *Otto) Compile(filename string, src interface{}) (*Script, error)

这就是它的好处。运行它,看看你在返回的错误值中得到了什么。

Also from the documentation:

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.