๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ ๊ณต๋ถ€/WEB

Node.js๋กœ node-red ๋‚ด์žฅ ์„œ๋ฒ„ ๋„์›Œ๋ณด๊ธฐ

by syLim___ 2024. 10. 2.
728x90

โœ… Node.js ์„ค์น˜

์šฐ์„  homebrew๋กœ Node.js๋ฅผ ์„ค์น˜ํ•ด์ฃผ์—ˆ๋‹ค.

brew install node

 

 

โœ… ์ฝ”๋“œ ์ž‘์„ฑ

๋จผ์ € ๊ฐ„๋‹จํ•œ ์›น์„œ๋ฒ„๋ฅผ ๋„์›Œ๋ณด๊ธฐ ์œ„ํ•ด index.js ํŒŒ์ผ์„ ์ž‘์„ฑํ–ˆ๋‹ค.

const http = require('http');

http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello Node.js');
}).listen(9090);

 

 

์‹คํ–‰์€ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค.

node index.js

 

 

node.js ์ž„๋ฒ ๋“œ ํ•˜๊ธฐ ์œ„ํ•ด node-red express๋ฅผ ์„ค์น˜ํ•ด์ฃผ์—ˆ๋‹ค.

npm install node-red express

 

 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์ธ nodered.js๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.

const express = require('express');
const http = require('http');
const RED = require('node-red');

const app = express();
const server = http.createServer(app);

const settings = {
    httpAdminRoot: "/red", // ํŽธ์ง‘ ํ™”๋ฉด ๊ฒฝ๋กœ
    httpNodeRoot: "/get",  // API ๊ฒฝ๋กœ
    userDir: "./nodered/", // Node-RED ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ
    flowFile: "flows.json", // ํ”Œ๋กœ์šฐ ํŒŒ์ผ ์ด๋ฆ„
    functionGlobalContext: {}, // ๊ธ€๋กœ๋ฒŒ ํ•จ์ˆ˜ ์ปจํ…์ŠคํŠธ
};

RED.init(server, settings);

app.use(settings.httpAdminRoot, RED.httpAdmin);
app.use(settings.httpNodeRoot, RED.httpNode);

server.listen(8081, () => {
    console.log("์„œ๋ฒ„๊ฐ€ 8081 ํฌํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.");
});

RED.start();

 

์ž‘์„ฑํ•œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด์ฃผ์—ˆ๋‹ค.

node nodered.js

 

โœ… ์„œ๋ฒ„ ์ ‘์†

localhost:8081/red ๊ฒฝ๋กœ๋กœ ์ ‘์†ํ•˜๋ฉด ๋œ๋‹ค. (๋””ํดํŠธ๋กœ /red ๊ฒฝ๋กœ๊ฐ€ ๋…ธ๋“œ๋ ˆ๋“œ ํŽธ์ง‘๊ธฐ์ด๋‹ค.)

728x90