
正文
sequelize的get/post方法例子
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
定义两个model,一个给get的,一个给post的
var Sequelize = require('sequelize');const DeviceNos = sequelize.define('DeviceDetail',
{
DeviceNo: {
type: Sequelize.INTEGER
}
},
{
tableName: 'DeviceDetail',
timestamps: false,
freezeTableName: true
})const Device = sequelize.define('DeviceDetail',
{
DeviceNo: {
type: Sequelize.INTEGER
},
Tem: {
type: Sequelize.FLOAT,
get() {
return this.getDataValue("Tem").toFixed(2);
}
},
Hum: {
type: Sequelize.FLOAT,
get() {
return this.getDataValue("Hum").toFixed(2);
}
},
Lng: {
type: Sequelize.FLOAT,
get() {
return this.getDataValue("Lng").toFixed(2);
}
},
Lat: {
type: Sequelize.FLOAT,
get() {
return this.getDataValue("Lat").toFixed(2);
}
}, ServiceTime: {
type: Sequelize.DATE,
get() {
return moment(this.getDataValue('ServiceTime')).format('YYYY-MM-DD HH:mm:ss');
}
}
}, {
tableName: 'DeviceDetail',
timestamps: false,
freezeTableName: true
});
定义运算符
const Op = Sequelize.Op;
定义get/Post方法
router.post('/searchDeviceRecord', async function (ctx, next) {
let deviceNo = ctx.request.body.deviceNo;
let st = ctx.request.body.st;
let et = ctx.request.body.et;
console.log(st);
try {
var data = await Device.findAll({
attributes: ['DeviceNo', 'Tem', 'Hum', 'Lng', 'Lat', 'ServiceTime'],
where: {
deviceNo: deviceNo,
serviceTime: {
[Op.lte]: et,
[Op.gte]: st
}
},
order: [['ServiceTime', 'ASC']]
})
ctx.body = JSON.stringify(data);
} catch (e) {
console.log(e);
}
});router.get('/getDeviceList', async function (ctx, next) {
try {
var data = await DeviceNos.findAll({
attributes: [[sequelize.literal('distinct DeviceNo'), 'DeviceNo']], order: [['DeviceNo', 'ASC']]
})
ctx.body = JSON.stringify(data);
} catch (e) {
console.log(e);
}});







