2025年5月11日日曜日

Johnny5 with express

 https://qiita.com/ryome/items/16659012ed8aa0aa1fac でexpressの大方は理解できる

なお https://qiita.com/masayasviel/items/e6bf949b81d42da27d9a は

Arduinoをブラウザから動かした話  


これはexpressをjohnny5に入れ込む複雑なコードよりわかりやすい
小生のブログ記事である https://www.blogger.com/blog/post/edit/7870955253680497274/4949393011755218019
と比較すると一目瞭然)

const express = require("express");

const five = require("johnny-five");

const board = new five.Board({port:"/dev/ttyACM0"});

const app = express();

app.use(express.static("public"));


const bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({extended: false}));

注 https://nodejs.keicode.com/nodejs/express-params-form.php

このミドルウェアは Content-Type が application/x-www-form-urlencoded である POST リクエストのボディ部を解析し、 リクエストオブジェクトの body プロパティにフォームデータの内容を表すオブジェクトをセットします。

let led;

board.on('ready', function() { led = new five.Led(13); } );

const message = "現在の状態:";


app.get("/", (req, res)=>{

    res.render("index.ejs",{

        content: message + "off",

    });

});

// middlewareを経由しているのでreqのbodyにoperate要素のvalueが入っている

app.post("/", (req, res)=>{

    if(req.body.operate == "on"){

        led.on();

    }

    if(req.body.operate == "off"){

        led.off();

    }

    res.render("index.ejs",{

        content: message + req.body.operate,

    });

});


const server = app.listen(3000, ()=>console.log("イエッタイガー!"));



0 件のコメント:

コメントを投稿