当前位置: 首页 > 知识库问答 >
问题:

纯 nodejs 项目如何调用 nestjs 微服务?

乜嘉悦
2024-01-17

我们知道 nestjs http 服务器调用 nestjs 微服务是简单的,已经封装好了,
那么脱离nestjs 环境,普通的 nodejs 环境 如何调用微服务呢?

共有2个答案

赫连宏伯
2024-01-17

从 stackoverflow 找到一个答案.https://stackoverflow.com/questions/55942795/call-my-nestjs-microservice-with-nodejs-app

import { ClientTCP } from "@nestjs/microservices";import { lastValueFrom } from "rxjs";async function bootstrap() {  const client = new ClientTCP({    host: "localhost",    port: 3001,  });  await client.connect();  const pattern = { cmd: "math:wordcount" };  const data = "12314";  const result = await lastValueFrom(client.send("math:wordcount", data)).catch(    (e) => {      console.log(`e`, e);    }  );  console.log(result);}bootstrap();

当然安装的话需要安装这些包,不然会缺少依赖...:

    "@nestjs/common": "^10.3.0",    "@nestjs/core": "^10.3.0",    "@nestjs/microservices": "^10.3.0"
严修谨
2024-01-17

要在纯Node.js项目中调用NestJS微服务,你可以使用HTTP客户端库来发送HTTP请求。以下是一种可能的方法:

首先,确保你已经安装了axiosnode-fetch等HTTP客户端库。你可以使用npm(Node.js包管理器)来安装它们:

npm install axios

或者

npm install node-fetch

接下来,在你的Node.js项目中,导入你选择的HTTP客户端库并使用它来发送HTTP请求到NestJS微服务。以下是一个使用axios的示例:

const axios = require('axios');async function callNestJsMicroservice(url) {  try {    const response = await axios.get(url);    console.log(response.data);  } catch (error) {    console.error('Error calling NestJS microservice:', error);  }}// 调用NestJS微服务的URLconst nestJsMicroserviceUrl = 'http://localhost:5000/api/some-endpoint';callNestJsMicroservice(nestJsMicroserviceUrl);

在上面的示例中,我们使用了axios库的get方法来发送GET请求到NestJS微服务的指定URL。你可以根据需要使用其他HTTP方法(如POST、PUT、DELETE等)。请确保将url变量替换为你要调用的NestJS微服务的实际URL。

这是一个简单的示例,你可以根据你的实际需求进行修改和扩展。注意,你还需要处理异常和错误情况,这只是一个基本示例。

 类似资料:
  • 使用nestjs 构建了一个微服务,java 如何连接.

  • nestjs 一个服务如何既做微服务也做http服务器? 比如一个接口既可以做 http 又可以做微服务.不想再写一个专门的http 服务器. 接口是否可以相同?

  • 我无法在微调器中选择项目。当我单击微调器中的项目时,Logcat显示警告 W/InputManagerService(60):窗口已聚焦,忽略:com的聚焦增益。Android内部的看法IIInputMethodClient$存根$Proxy@406f3d90 代码示例 你能帮助我吗?

  • 我有一个微调器,里面填充了来自XML的字符串数组: 当用户选择某个内容时,我将其保存到SharedReferences。下次打开应用程序时,如何设置该值?我只保存了值,而没有保存它在微调器列表中的位置 如果我只做旋转单位。适配器要获得适配器,如何安全地投射SpinnerAdapter!到ArrayAdapter?还是这是错误的方法?

  • 我正在开发一个android应用程序,在活动中我有三个领域:1。手机号码2。微调器3。微调器 用户输入手机号码后,我想更改微调器项目的颜色。 有人能告诉我怎么做吗?提前谢谢。

  • 问题内容: 我正在为项目使用节点,表达和更多其他依赖项。我想知道如何在Firebase上托管此项目。我的项目将具有controller,view和其他文件夹以使该项目成为可能。它已经具有诸如pug / handlebars的视图引擎。 在线教程仅显示如何使用公用文件夹中的单个index.html托管Firebase。我应该如何将我的项目与所有其他文件夹一起托管?我知道如何在nodeJS中使用fir