Node Red 与axios简易测试环境的搭建

为了学习在vue3中如何使用axios,我借Sider Fusion的帮助搭建了基于node的简易测试环境。

Axios 是一个基于 Promise 的 HTTP 客户端,通常用于浏览器环境,但它也可以在 Node.js 环境中使用。因此,可以在 Ubuntu 的 Bash 环境下通过 Node.js 使用 Axios。

步骤:

安装 Node.js 和 npm :

如果您尚未安装 Node.js,请通过以下命令安装(通常会包括 npm):

bash 复制代码
sudo apt update  
sudo apt install nodejs npm

您可以检查安装是否成功:

bash 复制代码
node -v 
npm -v 

创建项目:创建一个新的目录并进入:

bash 复制代码
mkdir my-axios-app 
cd my-axios-app 

初始化 npm:
3.

初始化一个新的 npm 项目:

bash 复制代码
npm init -y 

安装 Axios:
4.

使用 npm 安装 Axios:

bash 复制代码
npm install axios 

编写 Axios 脚本:
5.

创建一个新的 JavaScript 文件,如 app.js

bash 复制代码
nano app.js 

打开 app.js,然后添加以下代码:

javascript 复制代码
const axios = require('axios');  

axios.get('http://www.xxxxx.cn:1880/api/data')  
    .then(response => {  
        console.log('Response from Node-RED:', response.data);  
    })  
    .catch(error => {  
        console.error('Error:', error);  
    });

运行脚本:
6.

使用 Node.js 运行脚本:

bash 复制代码
node app.js 

NodeRed节点




javascript 复制代码
[
    {
        "id": "6f67ed6250fc6293",
        "type": "tab",
        "label": "流程 4",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "cbeb42c4ff466487",
        "type": "debug",
        "z": "6f67ed6250fc6293",
        "name": "debug 20",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 600,
        "y": 200,
        "wires": []
    },
    {
        "id": "71b003bcbda86c27",
        "type": "function",
        "z": "6f67ed6250fc6293",
        "name": "function 10",
        "func": "msg.payload = { message: \"Hello from Node-RED!你好\" };\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 430,
        "y": 200,
        "wires": [
            [
                "cbeb42c4ff466487",
                "a7ce06a8882a6108"
            ]
        ]
    },
    {
        "id": "06cfce3558445895",
        "type": "http in",
        "z": "6f67ed6250fc6293",
        "name": "",
        "url": "/api/data",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 250,
        "y": 200,
        "wires": [
            [
                "71b003bcbda86c27"
            ]
        ]
    },
    {
        "id": "a7ce06a8882a6108",
        "type": "http response",
        "z": "6f67ed6250fc6293",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 610,
        "y": 260,
        "wires": []
    }
]

实际代码测试及结果,url请换成自己的域名

nodered返回的结果

使用POSTMAN测试及结果

Google Chrome测试及结果

AXIOS 向Nodered post数据

javascript 复制代码
const axios = require('axios');  

const postDataToNodeRed = async () => {  
  try {  
    const response = await axios.post('http://www.xxxxx.com:1880/api/data', {  
      key1: 'value1',  
      key2: '你好',  
      // 其他数据  
    });  

    console.log('Response from Node-RED:', response.data);  
  } catch (error) {  
    console.error('Error while sending data to Node-RED:', error);  
  }  
};  

postDataToNodeRed(); 

NodeRed节点

javascript 复制代码
msg.payload = {
    receivedData: msg.payload,
    message: "Data received successfully"
};
return msg;
javascript 复制代码
[
    {
        "id": "5e7fbd551b9ac7da",
        "type": "tab",
        "label": "流程 5",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "1917a20da9f650f4",
        "type": "http in",
        "z": "5e7fbd551b9ac7da",
        "name": "",
        "url": "/api/data",
        "method": "post",
        "upload": false,
        "swaggerDoc": "",
        "x": 260,
        "y": 220,
        "wires": [
            [
                "844bf33a8bc338b0"
            ]
        ]
    },
    {
        "id": "e428c6755d5a0a36",
        "type": "debug",
        "z": "5e7fbd551b9ac7da",
        "name": "debug 22",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 640,
        "y": 220,
        "wires": []
    },
    {
        "id": "02abf8b96935f1f4",
        "type": "http response",
        "z": "5e7fbd551b9ac7da",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 670,
        "y": 300,
        "wires": []
    },
    {
        "id": "844bf33a8bc338b0",
        "type": "function",
        "z": "5e7fbd551b9ac7da",
        "name": "function 12",
        "func": "msg.payload = {\n    receivedData: msg.payload,\n    message: \"Data received successfully\"\n};\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 450,
        "y": 220,
        "wires": [
            [
                "e428c6755d5a0a36",
                "02abf8b96935f1f4"
            ]
        ]
    }
]

node发送POST数据,并接收到Nodered返回的数据

NodeRed收到的数据

相关推荐
怕浪猫1 小时前
FDE 如何正确解决现场项目工程性的问题
前端·后端·ai编程
西瓜太郎12341 小时前
外层模型卡片与分组详情成功率不一致,应该怎么排查?
前端·typescript·go·软件工程·react
GreenTea1 小时前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法
毕业设计7034 小时前
(免费领源码) 基于微信小程序的预制菜商城的设计与实现25172-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·python·mysql·微信小程序·pycharm·微信开发者工具·推荐算法
xifangge20254 小时前
AGENTS.md 怎么写?涵盖 Java、Python、Vue、Go 的 8 套开箱即用模板
java·vue.js·python
几何心凉4 小时前
没有万能模型:我用 AiiOnly Token Plan,把多款大模型的长处拼进同一个项目
前端
kyriewen4 小时前
Claude Code 的额度今天缩水了17%——官方公告上写的是"永久提高25%"
前端·ai编程·claude
雪芽蓝域zzs5 小时前
vue解构平铺VS对象包裹
前端·javascript·vue.js
风骏时光牛马6 小时前
从零到实战,完整AI学习路线
前端
三十而立洋6 小时前
深入理解 Monorepo:子包安装依赖
前端·前端工程化