【国产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就能通过网页控制了。
参考类似的方法,你还可以学习控制其他类型的外设,以及读取显示数据了
|