1499|1

330

帖子

5

TA的资源

纯净的硅(中级)

楼主
 

【国产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执行:

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

 

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

 

 可以看到,该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,然后执行:

 

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

 

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

最新回复

在星光板上建立一个 基础的web服务通过web服务来控制LED,学习了   详情 回复 发表于 2022-7-3 21:54
点赞 关注
 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

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

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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