nodejs快速测试
2021-05-12 00:27
                         标签:pm2   功能   base   create   eve   pre   false   array   数据库    对于一些js功能,可以通过nodejs快速搭建测试环境 nodejs快速测试 标签:pm2   功能   base   create   eve   pre   false   array   数据库    原文地址:https://www.cnblogs.com/lijianming180/p/12014337.html1、这里我们先通过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
96var 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
    })
});