我是回环的新手,所以这是我的问题:
我有一个名为“ config-tables”的模型,其中包含以下测试数据:
[
{
ID: 0,
CONFIG_NAME: "MainColor",
DATA_TYPE: "color",
CONFIG_VALUE: "#FF0000",
VERSION: 1
},
{
ID: 1,
CONFIG_NAME: "MainColor",
DATA_TYPE: "color",
CONFIG_VALUE: "#FF00FF",
VERSION: 2
}
]
我想创建两个自定义方法并将其公开给API:
第一个是获取最新版本的方法。
第二种方法是获取最新版本(在这种情况下为version = 2)的所有数据的方法。
我已经阅读了很多有关环回过滤器的信息,但是无法弄清楚如何在SQL中使用类似于MAX
或TOP
的东西。
答案 0 :(得分:0)
也许还有更好的事情要做-但我只是在 /common/models/config-tables.js 中创建两个远程方法,以获取您的 config-表格实体按版本属性排序:
'use strict';
module.exports = function (configTable) {
//first
configTable.getLastVersion = function (cb) {
// find only one configTable ordered by version
configTable.findOne({order: 'VERSION DESC'}, function (err, config) {
if(config && config.VERSION) {
cb(err, config.VERSION);
} else {
// or throw a new error, depending on what you want
cb(err, 0);
}
});
};
configTable.remoteMethod('getLastVersion', {
returns: {arg: 'VERSION', type: 'number'},
http: {verb: 'get'}
});
//second (depending on the first method)
configTable.getLatests = function (cb) {
configTable.getLastVersion(function (err, last_version) {
if(err || !last_version || last_version === 0) {
// maybe throw error here
return cb(new Error("No config found actually..."));
} else {
// find all configTables where VERSION = last version
configTable.find({where: {VERSION: last_version}}, function (err, configs) {
cb(err, configs);
});
}
});
};
configTable.remoteMethod('getLatests', {
returns: {arg: 'configTables', type: 'object'},
http: {verb: 'get'}
});
};