这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【BeagleBoneBlack】④安装node.js打开网络世界的大门

共1条 1/1 1 跳转至

【BeagleBoneBlack】④安装node.js打开网络世界的大门

助工
2026-04-22 20:30:36     打赏

首先介绍下node.js

[object Object]


Node.js是一个开源、跨平台的,基于 Chrome V8 引擎的 JavaScript 运行环境。

JavaScript 我们应该很熟悉,各大浏览器都支持JavaScript ,我们能在网页中进行各种交互都依赖于JavaScript 语言。

而Node是把把JavaScript带入到后端服务器开发。在Node上运行的JavaScript相比其他后端开发语言最大的优势是借助JavaScript天生的事件驱动机制加V8高性能引擎,使编写高性能Web服务轻而易举。


image.png

借助Node.js我们能开发哪些有意思、有价值的应用?

比如1. 智能家居中控系统

    通过 Web / 小程序远程控制灯光、继电器、空调、窗帘;联动温湿度 / 光照传感器自动调节;

2.多传感器数据采集与边缘分析

    采集温度、湿度、气压、PM2.5、气体浓度等传感器数据;本地实时分析(如阈值报警、趋势统计);通过 MQTT 上传至云平台

3.运动控制与视觉导航

    控制电机、舵机实现移动底盘运动;结合摄像头与计算机视觉实现目标跟踪、避障、手势控制;支持多传感器融合

4.本地媒体服务器与家庭娱乐中心

    搭建流媒体服务器,支持视频 / 音频转码与远程播放;控制智能家居设备联动娱乐场景

5.安防监控与入侵检测系统

    摄像头实时监控;人体 / 移动目标检测;异常情况触发声光报警、录像并推送通知至手机。



BeagleBoneBlack具备丰富的软硬件资源和生态,非常适合构建基于Node.js的应用。

下面说干就干,首先安装Node.js并搭建一个建议的网页服务器吧!


image.png


然而,很遗憾,目前node.js官方网站不再支持ARMv7架构的linux(BeagleBoneBlack)

使用sudo apt install nodejs build-essential -y  会报错。


image.png



但也有办法。

使用以下指令,直接下载编译好的安装包,支持BeagleBoneBlack ARMv7l架构

wget https://nodejs.org/download/release/v20.18.0/node-v20.18.0-linux-armv7l.tar.xz
sudo tar -xvf node-v20.18.0-linux-armv7l.tar.xz -C /usr/local --strip-components=1

以上两步骤就可以了。

然后验证下是否安装完成

beagle@BeagleBone:~$ node -v
v20.18.0
beagle@BeagleBone:~$ npm -v
10.8.2

说明已安装完成。


接下来我们搭建一个建议的网页服务器,用它来抓取今天的头条新闻(联合早报https://www.zaobao.com),并可以在局域网内使用手机访问。

new6.js

const http = require('http');
const https = require('https');

// 创建网页服务器
const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });

  // 抓取联合早报
  const reqNews = https.get('https://www.zaobao.com/', {
    headers: {
      'User-Agent': 'Mozilla/5.0 (Linux armv7l) Node.js'
    }
  }, (resp) => {
    let html = '';
    resp.on('data', (chunk) => html += chunk);
    resp.on('end', () => {
      // 原生正则抓取头条
      const regex = /<a[^>]+href="([^"]+)"[^>]*>([^<]+)<\/a>/g;
      let match;
      let news = [];

      while ((match = regex.exec(html)) !== null) {
        const url = match[1].startsWith('http') ? match[1] : 'https://www.zaobao.com' + match[1];
        const title = match[2].trim().replace(/\s+/g, ' ');
        if (title.length > 6 && title.length < 50) {
          news.push({ title, url });
        }
      }

      // 去重
      const unique = Array.from(new Set(news.map(n => n.title)))
        .map(t => news.find(n => n.title === t));

      // 输出网页
      let page = `
        <html>
        <head><meta charset="utf-8"><title>联合早报头条</title></head>
        <body style="padding:20px; background:#f5f5f5;">
          <h1 style="color:red">



使用以下指令运行即可。

beagle@BeagleBone:~$ sudo node news6.js
服务器运行中:http://本机IP:8080


在电脑浏览器输入:

http://192.168.31.122:8080/

运行结果如下:

image.png


跟联合早报网站对比,还真是那么回事哈。

image.png


本次分享就到这里。



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]