对于一些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. 实现3d效果

    transform-origin: center left 60px;可以实现3d转换

  2. CodeForces-1076B Divisor Subtraction 找规律

    题目链接:https://vjudge.net/problem/CodeForces-1076B 题意: 题目要求给定一个数,要求每次减去其最小素因数(既是素数又是其因数),问直到n=0需要做几次运算 ...

  3. POJ 1847:Tram

    Tram Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11771   Accepted: 4301 Description ...

  4. OpenMP笔记(四)

    个人博客地址:http://www.bearoom.xyz/2019/02/22/openmp4/ 一.private private子句用于将一个或多个变量声明成线程私有的变量,这样每个线程都有该变 ...

  5. PHP使用redis防止大并发下二次写入

    php调用redis进去读写操作,大并发下会出现:读取key1,没有内容则写入内容,但是大并发下会出现同时多个php进程写入的情况,这个时候需要加一个锁,即获取锁的php进程有权限写. $lock_k ...

  6. F5 BIG-IPLTM单臂组网的三种连接模式

  7. UML-如何进行对象设计?

    之前的章节,学过了OOA,以及交互图+类图.本章主要讲述OOD.OOD就是面向对象设计,那如何进行对象设计? 概览 1.输入制品 注:这些制品并非都必要. 2.活动 1).针对输入的制品,采用什么样的 ...

  8. centos快速安装mysql

    1. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. rpm -ivh mysql-community-r ...

  9. 16)PHP, set_include_path

    代码展示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  10. 1)PHP基础介绍

    1.php基础介绍: Perssonal Home Page  ====>PHP 2.应用范围 · web服务器脚本语言 命令行脚本语言     应用程序图形界面 3.PHP运行环境 PHP解释 ...