21xrx.com
2024-09-20 05:26:48 Friday
登录
文章检索 我的文章 写文章
Node.js调用Go程序
2023-06-24 05:56:29 深夜i     --     --
Node js Go程序 调用 进程通信 应用程序接口(API)

Node.js是一种非常流行的服务器端JavaScript运行环境,而Go(又称Golang)则是一种编译型语言,它具有高效率、类型安全、并发性和易于部署等优点。在一些特定的场景中,Node.js需要调用Go程序来完成一些复杂任务,本文将介绍如何通过Node.js调用Go程序。

首先需要在Go中创建并编译一个可执行文件,这个文件可以使用命令行进行调用,例如:


package main

import "fmt"

func main() {

  fmt.Println("Hello world from Go!")

}

将以上代码保存为hello.go文件,并使用以下命令行进行编译:


go build -o hello hello.go

执行以上命令后,将生成一个名为hello的可执行文件。

接下来,就可以在Node.js中调用这个可执行文件了。可以使用子进程(child_process)模块中的spawn函数来启动一个子进程来运行该可执行文件,例如:


const { spawn } = require('child_process');

const childProcess = spawn('./hello');

childProcess.stdout.on('data', (data) => {

  console.log(`stdout: ${data}`);

});

childProcess.stderr.on('data', (data) => {

  console.error(`stderr: ${data}`);

});

childProcess.on('close', (code) => {

  console.log(`child process exited with code ${code}`);

});

使用以上代码来启动一个子进程并运行hello可执行文件。stdout事件监听器将输出hello程序中输出的任何内容,stderr事件监听器将输出任何错误信息,close事件监听器将在子进程运行完成后输出退出码。删除以上代码中的stdout和stderr监听器可以将输出重定向到文件流或管道。

总结一下,这就是如何在Node.js中调用Go程序的步骤。需要注意的是,Node.js的子进程API提供了多种启动子进程的方式,具体选择哪种方式取决于需求的具体情况。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复