Go не удалось вызвать функцию JavaScript, потому что буфер был введен в код JavaScript

# #javascript #go

Вопрос:

Go не удалось вызвать функцию JavaScript, так как буфер был введен в код JavaScript

secret.js

 import Buffer from 'buffer'

var Q = function(e) {
    return new Buffer("asdfl")
};
 

главное.вперед

 func main() {
    jsFile := "./secret.js"
    bytes, err := ioutil.ReadFile(jsFile)
    if err != nil {
        panic(err)
    }

    vm := otto.New()
    _, err = vm.Run(string(bytes))
    if err != nil {
        panic(err)
    }
    enc, err := vm.Call("Q", nil, "123456")
    if err != nil {
        panic(err)
    }
    fmt.Println(enc.String())
}
 

советы по ошибкам

(anonymous): Line 1:1 Unexpected reserved word

Ответ №1:

отто реализовал только Javascript ES5, в то время import как он отличается от ES6, поэтому вы не могли использовать import его в своем JS-коде.

обновление: Вы можете следовать этому сообщению, чтобы реализовать свой собственный require метод