0
Keystone和mongo對我來說都是新手,所以我不確定如何操作數據。如何在將數據存儲到Keystone JS中的數據庫之前進行更改
我有具有模型(/models/Game.js
),看起來像一個梯形列表:
var keystone = require('keystone');
var Types = keystone.Field.Types;
var Game = new keystone.List('Game');
Game.add({
odds: { type: Types.Text, required: true, initial: true},
});
Game.track = true;
Game.defaultSort = '-createdAt';
Game.defaultColumns = 'odds';
Game.register();
賠率字段是一個字符串,例如3/1
,我希望通過拆分,並返回一個小數點的版本,例如一個函數來運行此:
function decimalOdds(fraction) {
const splitFields = fraction.split('/');
return ((splitFields[0]/splitFields[1]) + 1).toFixed(2);
}
這是我想被存儲在該公司的賠率「該函數的返回值數據庫。那可能嗎?
謝謝!讀過Keystone模式文檔並測試了幾件事情後,我注意到,如果使用'Post.schema.methods.decimalOdds = function(fraction){...}'與this.decimalOdds(this.odds)結合使用它沒有任何區別)'或者我只是定義了一個像'function decimalOdds(fraction){...}'這樣的普通函數,並通過'decimalOdds(this.odds)'調用它。這兩種方法有什麼區別? – davidpauljunior
沒問題。創建Mongoose實例方法將允許您在具有模型實例的任何地方使用該方法,因此,如果要在應用程序中的其他位置使用模型並且需要該功能,這可能會很有用。 –
太棒了。對不起,最後一件事(意外地延長我的問題一點點)。如果你有多個'pre'鉤子,它們都可以在同一個'Game.schema.pre'中嗎?還是每個都有這個整塊? – davidpauljunior