353|1

44

帖子

0

资源

一粒金砂(中级)

【国产RISC-V Linux板 昉·星光VisionFive试用报告】星光板上的nodejs开发2:web服务器 [复制链接]

再上一篇文章中,分享了星光板上基础的nodejs开发,实现了用nodejs控制LED闪烁。

这一次,再分享,在星光板上建立一个 基础的web服务,并通过web服务,来控制LED。

 

首先,nodejs自带了http模块,通过该模块,就能建立http服务端,对外提供web服务;也可以建立http客户端,获取其他web服务器提供的数据。

通过查看nodejs官方http的文档:http 超文本传输协议 | Node.js API 文档 (nodejs.cn)

了结了 nodejs的http的开发资料,并编写如下的程序:

var http = require('http');
var fs = require('fs');
var url = require('url');
 
 
// 创建服务器
http.createServer( function (request, response) {  
   // 解析请求,包括文件名
   var pathname = url.parse(request.url).pathname;
   
   // 输出请求的文件名
   console.log("Request for " + pathname + " received.");
   
   response.writeHead(404, {'Content-Type': 'text/html'});
   response.write(pathname);
   response.end();

}).listen(8080);
 
// 控制台会输出以下信息
console.log('Server running at http://*.*.*.*:8080/');

 

将上述代码保存为web_server.js,然后使用nodejs执行:

image.png  执行后,显示 “Server running at http://*.*.*.*:8080/” 表示可以访问了 。

 

然后访问如下的网址:(IP请根据自己开发板实际获取的设定)

image.png  

image.png  可以看到,该web server能够收到我们的请求。

 

然后,我们可以结合之前nodejs控制LED的分享,实现通过网页,来控制LED:

var http = require('http');
var fs = require('fs');
var url = require('url');

const Gpio = require('onoff').Gpio;
const led = new Gpio(448, 'out');

// 创建服务器
http.createServer( function (request, response) {  
   // 解析请求,包括文件名
   var pathname = url.parse(request.url).pathname;
   
   // 输出请求的文件名
   console.log("Request for " + pathname + " received.");
   
   if(pathname=="/on") {
    led.write(1);   
   } else if(pathname=="/off") {
    led.write(0);
   }
   response.writeHead(404, {'Content-Type': 'text/html'});
   response.write(pathname);
   response.end();

}).listen(8080);
 
// 控制台会输出以下信息
console.log('Server running at http://*.*.*.*:8080/');

 

将上述代码保存为web_led.js,然后执行:

image.png  

再访问/on和/off对应的网址,LED就能通过网页控制了。

 

参考类似的方法,你还可以学习控制其他类型的外设,以及读取显示数据了


回复

6990

帖子

0

资源

五彩晶圆(中级)

在星光板上建立一个 基础的web服务通过web服务来控制LED,学习了


回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表