JavaScript轻应用基础模块介绍

简介: 这里介绍的轻应用框架提供的基础模块。基础模块是与平台无关,在多种场景下都会使用到的通用能力,主要包括以下几种:系统信息、文件系统、键值存储。
来源 | HaaS技术社区

1、前言

之前的文章中,已经介绍了轻应用的概念以及如何在硬件平台上运行轻应用。这里介绍的轻应用框架提供的基础模块。基础模块是与平台无关,在多种场景下都会使用到的通用能力,主要包括以下几种:系统信息、文件系统、键值存储。

关于轻应用的文档请参考:https://help.aliyun.com/document_detail/174810.html

2、系统信息

系统信息模块提供了一些查看系统版本、系统时间、系统内存使用的接口等。该接口是全局接口,无需require。

2.1、示例代码

  1. console.log('system version is: ' + system.version());
  2. console.log('module version is: ' + system.versions().module);
  3. console.log('system platform is: ' + system.platform());
  4. console.log('system uptime is: ' + system.uptime());
  5. // get heap/memory information
  6. console.log('system heapTotal is: ' + system.memory().heapTotal);
  7. console.log('system heapUsed is: ' + system.memory().heapUsed);

为了对开发者更友好,system相关的接口也支持使用

process
进行访问,比如
process.platform()
process.uptime()

2.2、方法

system.version()

获取轻应用版本号。

返回

  • String类型。

system.versions()

获取更多版本号。

返回

  • Object类型。其属性有:

属性

说明

module

硬件模组版本号

system.platform()

获取当前硬件平台名称。

返回

  • String类型。

system.uptime()

获取当前系统运行时间。单位为毫秒。

返回

  • Number类型。

system.memory()

获取堆内存信息。

返回

  • Object类型,其属性有:

属性

说明

heapTotal

总共的堆内存大小

heapUsed

已经使用的堆内存大小

system.gc()

主动进行系统内存回收。

返回

  • Boolean类型,操作成功为True,操作失败为False。

3、文件系统

3.1、示例代码

  1. var fs = require('fs');
  2. var path = './test.data';
  3. var content = 'this is amp fs test file';
  4. // write file
  5. fs.writeSync(path, content);
  6. // read file
  7. var data = fs.readSync(path);
  8. console.log('fs read: ' + data);
  9. fs.unlinkSync(path);

3.2、方法

fs.writeSync(String path, String|ArrayBuffer data, Object options)

向文件系统中写入文件。

入参

属性

类型

必填

描述

path

String

写入文件的路径和名称

data

String | ArrayBuffer

要写入的文本或者二进制数据

options

Object

参考下面的options说明

options说明:

属性

类型

必填

描述

flag

String

flag,详细参见:文件系统flag说明,默认是'w'

fs.readSync(String path)

读取path路径下文件内容。

入参

属性

类型

必填

描述

path

String

文件路径

返回

  • ArrayBuffer 类型,读取到的数据。

fs.unlinkSync(String path)

删除对应path的文件。

入参

属性

类型

必填

描述

path

String

文件路径

文件系统flag说明

flag
选项采用字符串时,则以下标志均可用:
  • 'a'
    : 打开文件用于追加。 如果文件不存在,则创建该文件。
  • 'a+'
    : 打开文件用于读取和追加。 如果文件不存在,则创建该文件。
  • 'r'
    : 打开文件用于读取。 如果文件不存在,则会发生异常。
  • 'r+'
    : 打开文件用于读取和写入。 如果文件不存在,则会发生异常。
  • 'w'
    : 打开文件用于写入。 如果文件不存在则创建文件,如果文件存在则截断文件。
  • 'w+'
    : 打开文件用于读取和写入。 如果文件不存在则创建文件,如果文件存在则截断文件。

4、键值存储

kv - 键值存储为持久化存储,设备掉电无影响。

4.1、示例代码

  1. var kv = require('kv');
  2. var key = 'key-test';
  3. var value = 'this is amp kv test file';
  4. // kv set
  5. kv.setStorageSync(key, value);
  6. // kv get
  7. var val = kv.getStorageSync(key);
  8. console.log('kv read: ' + val);
  9. // kv remove
  10. kv.removeStorageSync(key);

4.2、方法

kv.setStorageSync(String key, String value)

新增/更新 key-value。

入参

属性

类型

必填

描述

key

String

需要新增的key。

value

String

需要新增的value。

返回值

  • Number类型,0:成功,其他:失败。

kv.getStorageSync(String key)

读取KV中的值。

入参

属性

类型

必填

描述

key

String

需要读取的key。

返回值

  • String类型,读取到的value值;如果读取失败则返回undefined。

kv.removeStorageSync(String key)

清除key-value值。

入参

属性

类型

必填

描述

key

String

需要清除的key。

5、开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

20210115164252868.png

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

相关文章
|
1月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
67 0
|
4月前
|
JavaScript 前端开发
在Node.js中,如何合理使用模块来避免全局变量的问题?
在Node.js中,如何合理使用模块来避免全局变量的问题?
189 71
|
4月前
|
监控 负载均衡 JavaScript
有哪些有效的方法可以优化Node.js应用的性能?
有哪些有效的方法可以优化Node.js应用的性能?
287 69
|
4月前
|
JavaScript 前端开发
如何减少Node.js应用中的全局变量?
如何减少Node.js应用中的全局变量?
166 43
|
1月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
77 0
|
5月前
|
前端开发 搜索推荐 JavaScript
如何通过DIY.JS快速构建出一个DIY手机壳、T恤的应用?
DIY.JS 是一款基于原生 Canvas 的业务级图形库,专注于商品定制的图形交互功能,帮助开发者轻松实现个性化设计。适用于 T 恤、手机壳等多种商品场景。它自带丰富功能,无需从零构建,快速集成到项目中。通过创建舞台、添加模型、定义 DIY 区域和添加素材四个步骤即可完成基础用法。支持在线演示体验,文档详细,易上手。
194 57
|
4月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
117 3
|
5月前
|
存储 JavaScript 前端开发
|
6月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
6月前
|
移动开发 运维 供应链
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~