如何针对 Node 运行时引入第三方包

    • 本文测试所用设备系统为 Ubuntu18.04
    • 运行模式为 docker 容器模式,native 进程模式配置流程相同
    • Node 版本为 8.5
    • 模拟 MQTT client 行为的客户端为 MQTTBox
    • 本文选择引入 这个第三方包来进行演示说明
    • 本文中基于 Hub 模块创建的服务名称为 localhub 服务。并且针对本文的测试案例中,对应的 localhub 服务、函数计算服务以及其他服务的配置统一如下:

    系统自带的 Node 环境有可能不会满足我们的需要,实际使用往往需要引入第三方库,下面给出示例。

    Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。我们可以引入第三方库 来使用它的功能。如何引入,具体如下所示:

    • 步骤 1: 进入 js 脚本目录,然后下载 Lodash
    1. cd /directory/of/Node/script
    • 步骤 2: 在具体执行脚本中引入第三方库 Lodash,如下所示:
    • 步骤 3: 执行脚本
    1. node your_script.js

    Node Lodash 第三方库脚本目录

    下面,我们编写脚本 index.js 来使用 提供的功能,具体如下:

    1. # node function 配置
    2. functions:
    3. - name: 'sayhi'
    4. handler: 'index.handler'
    5. codedir: 'var/db/baetyl/function-sayhi'

    首先定义如下的 json 数据作为输入消息:

    如上,localhub 服务接收到发送到主题 node 的消息后,会调用 index.js 脚本执行具体逻辑,对消息中的数组执行重复元素筛选、元素排序、元素按条件过滤等操作。然后将执行结果以 MQTT 消息形式反馈给主题 。我们通过 MQTTBox 订阅主题 t/hi,可以观察到如下消息:

    1. {
    2. "sorted_users": [
    3. { "user": "Jane", "age": 32, "active": true },
    4. { 'user': 'barney', "age": 36, "active": true },
    5. { "user": "fred", "age": 40, "active": false }
    6. ],
    7. "filtered_users": [
    8. { "user": "fred", "age": 40, "active": false }
    9. ],
    10. }