对于一些js功能,可以通过nodejs快速搭建测试环境

1、这里我们先通过express脚手架快速搭建一个项目,或者init一个空项目

2、mkdir script

3、这里假设我们的场景是MQTT接收消息并存入数据库(6字段字节数分别为212212)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
var mqtt = require('mqtt');
var Sequelize = require('sequelize');

var sequelize = new Sequelize('iot', 'root', 'root',
{
host: '127.0.0.1',
dialect: 'mysql',
timezone:'+08:00',
pool: {
max: 5,
min: 0,
idle: 10000
}
})

var SmallU = sequelize.define('table1', {
大专栏  nodejs快速测试 id: {
type: Sequelize.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true
},
deviceName:{
type: Sequelize.STRING,
field:'device_name',
comment:"设备id"
},
temperature: {
type: Sequelize.DOUBLE,
comment:"温度"
},
humidity: {
type: Sequelize.DOUBLE,
allowNull: false,
comment: "湿度"
},
pm25: {
type: Sequelize.DOUBLE,
allowNull: false,
comment: "PM2.5"
},
formaldehyde: {
type: Sequelize.DOUBLE,
allowNull: false,
comment: "甲醛"
},
batteryLevel: {
type: Sequelize.STRING,
field:"battery_level",
comment:"电池电量"
},
counter: {
type: Sequelize.INTEGER,
comment:"计数"
}

}, {
underscored: true,//驼峰式
freezeTableName: true,
// paranoid: true
// tableName: 'user_less_add'
});

sequelize.sync({force: false})

//MQTT
var client = mqtt.connect({port: 8883, host: '127.0.0.1', keepalive: 60});
let topic = 'application/7/node/+/rx';
client.subscribe(topic);

client.on('message', function (topic, message, puback) {

var data = JSON.parse(message.toString());
console.log("========开始=====");
console.log(data);
console.log("========结束====");
const deviceName = data.deviceName;
var rowData = Buffer(data.data, 'base64')
var temperature = parseInt(rowData.subarray(0,2).toString('hex'),16)/10; //温度
var humidity = parseInt(rowData.subarray(2,3).toString('hex'),16); //湿度
var pm25 = parseInt(rowData.subarray(3,5).toString('hex'),16); //PM2.5
var formaldehyde = parseInt(rowData.subarray(5,7).toString('hex'),16)/1000; //甲醛
var batteryLevel = parseInt(rowData.subarray(7,8).toString('hex'),16); //电池电量
var counter = parseInt(rowData.subarray(8,10).toString('hex'),16); //计数

SmallU.create({
deviceName:deviceName,
temperature:temperature,
humidity:humidity,
pm25:pm25,
formaldehyde:formaldehyde,
batteryLevel:batteryLevel,
counter:counter
})
});

nodejs快速测试的更多相关文章

  1. 利用Nodejs快速构建应用原型

    利用Nodejs快速构建应用原型 开发一个应用往往需要快速的构建原型,然后在此基础上设计和改进,前端可能立马能看到效果,但是后端业务逻辑不会那么快,这个时候其实我们需要额只是一些模拟数据,所以不需要真 ...

  2. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  3. PHP进阶,使用交互模式进行快速测试实验?

    额,那啥,PHP很强,大家都知道哈.不过呢,在搞PHP里的人中,自然也要分高下的.当然了,我更喜欢用好玩来形容了. 什么叫做快速开发?我觉得,快就得快到随手写几个字,就能让代码跑起来!那么,PHP能做 ...

  4. Slickflow.NET 开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍

    前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测 ...

  5. dubbo接口快速测试技巧

    在分布式系统的开发中,用到了dubbo+zookeeper技术,最近遇到一个问题,产品上线后,我负责的模块出了问题,某个bean中某个字段的值一直为null,而这个bean是我调用注册在zookeep ...

  6. nodejs快速入门

    目录: 编写第一个Node.js程序: 异步式I/O和事件循环: 模块和包: 调试. 1. 编写第一个Node.js程序: Node.js 具有深厚的开源血统,它诞生于托管了许多优秀开源项目的网站—— ...

  7. Asp.Net Core 轻松学-利用文件监视进行快速测试开发

    前言     在进行 Asp.Net Core 应用程序开发过程中,通常的做法是先把业务代码开发完成,然后建立单元测试,最后进入本地系统集成测试:在这个过程中,程序员的大部分时间几乎都花费在开发.运行 ...

  8. Nodejs的测试和测试驱动开发

    测试是保证软件质量必不可少的一环.测试有很多形式:手动.自动.单元测试等等.这里我们只聊使用Mocha这个框架在Nodejs中实现单元测试.单元测试是测试等重要组成,这样的测试只对于一个方法,这样的一 ...

  9. Nodejs Mocha测试学习

    参考大神阮一峰的文章<测试框架 Mocha 实例教程> 目前在使用Nodejs,但写完的程序很容易出错,那怎么办?需要引入单元测试去做基础的测试 目前Nodejs用来做单元测试的工具接触的 ...

随机推荐

  1. PROOF|ADOBE READER

    样稿PROOF,最后是印刷样张. 修改校样是最后一次修改错误. 每一版editor不一样,任务不同. 不能修改工作单位,但是可以加一个标注. 最好使用ADOBE READER中的COMMENT& ...

  2. 元祖&字典

    #什么是元祖:元祖是一个不可变的列表(没有改的需求) #======================================基本使用============================== ...

  3. 32. docker swarm 集群服务通信 之 RoutingMesh - internal 网络

    1. 两个 service 是如何通信的 通过内置的 DNS 服务发现的功能  相互通信的 2. 创建一个 overlay 的 网络 docker network create -d overlay ...

  4. 提高WiFi上网速度

    https://jingyan.baidu.com/article/1876c852aa668c890b1376c4.html http://www.coozhi.com/youxishuma/you ...

  5. PAT Advanced 1127 ZigZagging on a Tree (30) [中序后序建树,层序遍历]

    题目 Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree c ...

  6. Android Studio 停靠模式(Docked Mode)

    如果之前选了任务一种模式,先全都取消了 然后点击Window -->Active Tool Window-->这个时候就可以选择Docked Mode了

  7. 拉格朗日插值Python代码实现

    1. 数学原理 对某个多项式函数有已知的k+1个点,假设任意两个不同的都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为: 其中每个lj(x)为拉格朗日基本多项式(或称插值基函数),其表 ...

  8. 洛谷p1006 传纸条 三维解法

    原题目如下 原地址https://www.luogu.com.cn/problem/P1006 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做 ...

  9. PAT甲级——1005.SpellItRight(20分)

    Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output e ...

  10. Python 语言基础

    Python 语言基础 Python 开发环境 计算机组成 编程语言(计算机语言)是人们为了控制计算机,而设计的一种符号和文字的组合,从而实现向计算机发出指令. 形式是符号和文字的组合 目的是为了控制 ...