亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓 nodejs 與 golang 對話

如何讓 nodejs 與 golang 對話

Go
慕尼黑5688855 2021-10-18 11:12:30
我正在 node.js 和 golang 中創建一個 web 應用程序。我需要將 nodejs 與 golang 代碼連接起來,golang 代碼會與 mongodb 對話并將數據返回給 node 程序。有什么辦法可以連接嗎?我嘗試使用 gonode API。這是我使用 gonode API 的代碼。我的 node.js 文件包含以下代碼:var Go = require('gonode').Go;var options = {path : 'gofile.go',initAtOnce : true,}var go = new Go(options,function(err){if(err) throw err;go.execute({commandText: 'Hello world from gonode!'}, function(result, response) {        if(result.ok) {            console.log('Go responded: ' + response.responseText);        }});go.close();});     `這是我的 gofile.go 文件中的代碼:package mainimport(    gonode "github.com/jgranstrom/gonodepkg"    json "github.com/jgranstrom/go-simplejson")func main(){    gonode.Start(process)}func process(cmd *json.Json) (response *json.Json) {        response, m := json.MakeMap()    if(cmd.Get("commandText").MustString() == "Hello") {        m["responseText"] = "Well hello there!"    } else {        m["responseText"] = "What?"    }    return}這是在終端中作為節點 node.js 運行時出現的錯誤events.js:72        throw er; // Unhandled 'error' event              ^Error: write EPIPE    at errnoException (net.js:905:11)    at Object.afterWrite (net.js:721:19)
查看完整描述

3 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

感謝您的回復。我得到了一個解決方案。我做了2個不同的服務器。一個用于 NodeJS,另一個用于 Golang。我在 Node 服務器中調用 golang uri 并從 golang 服務器獲取數據。


查看完整回答
反對 回復 2021-10-18
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

基于對 gonode 源代碼的粗略檢查,該模塊似乎將 go 代碼生成為子進程并通過 stdin/-out 進行通信。EPIPE 錯誤意味著另一端關閉了流?;诖?,可能是您的 go 進程過早退出。

您可以嘗試通過修改 gonode/lib/command.js 中的 Command.prototype.execute 來打印出發送到 go 進程的 JSON 來調試問題。然后你可以通過直接運行它并通過標準輸入給它相同的輸入來調試 go 程序。


查看完整回答
反對 回復 2021-10-18
  • 3 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號