Node-Red http节点 做一个简易登录端在My sql 中验证登录信息

  最近在研究物联网使用的Node-Red ,写点东西给大家参考参考,不知道有没有用。

  需要的节点有http的输入和输出节点两个,function节点一个用于数据验证。my sql 节点一个 用于数据连接。还有一个判断节点判断用户和密码是否存在。 两个template节点用于登录界面和成功登录的主界面的html的编写。

   1.两个http 输入节点在URL里写入如图的路径,输出节点不需要配置,直接连接就行。

   2.在function节点输入sql语句。

my sql 数据库的配置如下,Host中输入mysql 安装的服务器地址,Database 写用户存储的数据库名称。

3.判断节点的配置如下,需要注意的是msg里输入的是 payload.length,判断用户名和密码在数据库中查询的结果,长度为零则表示没有用户或者密码不对。

4.用户界面可以在template中自己写个简单的。在浏览器中输入访问地址(node-red 安装的服务器的访问地址)+端口号(1880)+/login  (http 输入节点的URL)。

点击登录后成功则进入page的界面否则回到登录界面。

下面给出代码:

[{"id":"a1815e64.6ed58","type":"http in","z":"c91380af.e6615","name":"/login","url":"/login","method":"get","upload":false,"swaggerDoc":"","x":1350,"y":800,"wires":[["65e254f5.eea0ec"]]},{"id":"65e254f5.eea0ec","type":"template","z":"c91380af.e6615","name":"login","field":"payload","fieldType":"msg","format":"html","syntax":"mustache","template":"<!DOCTYPE html>\n<html lang=\"en\">\n \n<head>\n    <meta charset=\"UTF-8\">\n    <title>login</title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n        }\n         \n        html {\n            height: 100%;\n            width: 100%;\n            overflow: hidden;\n            margin: 0;\n            padding: 0;\n            background: url(Desert.jpg) no-repeat 0px 0px;\n            background-repeat: no-repeat;\n            background-size: 100% 100%;\n            -moz-background-size: 100% 100%;\n        }\n         \n        body {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            height: 100%;\n        }\n         \n        #loginDiv {\n            width: 37%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            height: 300px;\n            background-color: rgba(75, 81, 95, 0.3);\n            box-shadow: 7px 7px 17px rgba(52, 56, 66, 0.5);\n            border-radius: 5px;\n        }\n         \n        #name_trip {\n            margin-left: 50px;\n            color: red;\n        }\n         \n        p {\n            margin-top: 30px;\n            margin-left: 20px;\n            color: azure;\n        }\n         \n        input {\n            margin-left: 15px;\n            border-radius: 5px;\n            border-style: hidden;\n            height: 30px;\n            width: 140px;\n            background-color: rgba(216, 191, 216, 0.5);\n            outline: none;\n            color: #f0edf3;\n            padding-left: 10px;\n        }\n         \n        .button {\n            border-color: cornsilk;\n            background-color: rgba(100, 149, 237, .7);\n            color: aliceblue;\n            border-style: hidden;\n            border-radius: 5px;\n            width: 100px;\n            height: 31px;\n            font-size: 16px;\n        }\n    </style>\n     <script>\n    \t//校验账号的格式\n    \tfunction check_code() {\n    \t\tvar code = document.getElementById(\"userNname\").value;\n    \t    var pwd = document.getElementById(\"password\").value; \n    \t    //window.location.href=\"http://192.168.0.1:1880/public/fitbit/add\"+\"?Name=\"+code+\"&pwd=\"+pwd;\n    \t    //return false\n    \t\t   window.location.href=\"http://192.168.0.1:1880/login/check\"+\"?Name=\"+code+\"&pwd=\"+pwd;  \n               window.event.returnValue=false; \t\n    \t\t};\n\n    \n    </script>\n</head>\n \n<body backgaound=\"\" >\n    <div id=\"loginDiv\">\n        <form action=\"\" id=\"form\">\n            <h1 style=\"text-align: center;color: aliceblue;\">LOGIN  IN</h1>\n            <p>用户名:<input id=\"userNname\" type=\"text\"><label id=\"name_trip\"></label></p>\n \n            <p>密码:&nbsp;&nbsp;<input id=\"password\" type=\"password\"><label id=\"password_trip\"></label></p>\n \n            <div style=\"text-align: center;margin-top: 30px;\">\n                <input type=\"submit\" class=\"button\" value=\"登录\" onclick=\"check_code()\">\n                <input type=\"reset\" class=\"button\" value=\"取消\">\n            </div>\n        </form>\n    </div>\n \n</body>\n</html>","x":1950.8958950042725,"y":802.4446773529053,"wires":[["3e6d29dd.f20cb6"]]},{"id":"bb704595.b31558","type":"debug","z":"c91380af.e6615","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":2097,"y":720,"wires":[]},{"id":"3e6d29dd.f20cb6","type":"http response","z":"c91380af.e6615","name":"","statusCode":"","headers":{},"x":2100.326488494873,"y":803.0973606109619,"wires":[]},{"id":"f24d381d.d034b8","type":"http in","z":"c91380af.e6615","name":"/login/check","url":"/login/check","method":"get","upload":false,"swaggerDoc":"","x":1370,"y":764,"wires":[["26520393.ce710c"]]},{"id":"6a19dbf3.a095e4","type":"template","z":"c91380af.e6615","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<html>\n\n<head>\n    <meta http-equiv=\"refresh\" content=\"0.1;url=http://192.168.10.20:1880/ui\"> \n</head>\n<body>\n\n</table>\n</body>\n</html>","x":1949.8956909179688,"y":758.7781372070312,"wires":[["bb704595.b31558","476029ed.c4eb28"]]},{"id":"476029ed.c4eb28","type":"http response","z":"c91380af.e6615","name":"","statusCode":"","headers":{},"x":2099,"y":759,"wires":[]},{"id":"26520393.ce710c","type":"function","z":"c91380af.e6615","name":"数据查询","func":"var N=msg.payload.Name;\nvar P=msg.payload.pwd;\nmsg.topic = \"select * from userInfo where UserName='\"+ N +\"' and Pwd='\"+ P +\"' \";\nmsg.payload = [ \"test1\"];\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1580,"y":764,"wires":[["fa2a9300.4fea"]]},{"id":"fa2a9300.4fea","type":"mysql","z":"c91380af.e6615","mydb":"127663fd.82843c","name":"","x":1590,"y":703,"wires":[["6ec921b9.1f013"]]},{"id":"6ec921b9.1f013","type":"switch","z":"c91380af.e6615","name":"","property":"payload.length","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":1770,"y":766,"wires":[["6a19dbf3.a095e4"],["65e254f5.eea0ec"]]},{"id":"127663fd.82843c","type":"MySQLdatabase","name":"","host":"192.168.10.20","port":"3306","db":"velocityradar","tz":"","charset":"UTF8"}]

觉得有帮助的可以给个赞,谢谢。

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Node-RED一个基于流程编程的开源工具,用于连接硬件设备、API和在线服务,用于创建物联网应用程序。本教程的第11部分将介绍如何使用Node-RED的扩展节点之一- SQLite节点SQLite是一种轻量级的嵌入式关系型数据库,适用于小型项目和单用户应用程序。通过使用SQLite节点,您可以在Node-RED轻松地执行数据库操作。 安装SQLite节点非常简单。首先,在Node-RED的主面板上打开右上角的“菜单”按钮,并选择“管理面板”。然后,点击“PALLETE”选项卡,并搜索“node-red-node-sqlite”节点。点击“安装”按钮,等待安装完成。 安装完成后,您将在Node-RED的工具栏看到SQLite节点,可以将其添加到您的流程。将SQLite节点拖放到画布上,并通过双击节点配置数据库的参数。您可以指定数据库的名称和路径,以及执行的SQL语句。例如,您可以创建表或插入、删除和查询数据。 通过连接输入和输出节点,可以在流程使用SQLite节点执行数据库操作。输入节点接收要执行的SQL语句,将其发送给SQLite节点进行处理,并将结果发送给输出节点。输出节点可以将查询结果显示在控制台上,也可以将结果发送到其他设备或服务。 使用SQLite节点的好处是它使数据库操作变得更加简单和集成化。您无需编写繁琐的数据库代码,只需通过配置节点进行操作即可。此外,SQLite是基于文件的数据库,因此您无需安装独立的数据库服务器,只需将数据库文件存储在适当的位置即可。 总结一下,通过本教程,您将了解如何在Node-RED使用扩展节点之一- SQLite节点。通过使用该节点,可以轻松执行数据库操作,并将其集成到您的物联网应用程序。希望这些信息对您有所帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值