2014-03-06 70 views
1

我看到的症狀是,在添加一個對象後,查看按createdAt: 'desc'排序的列表,新對象位於列表的末尾,但應位於列表的開始位置。我注意到日期顯示爲例如"Thu Mar 06 2014 10:52:56 GMT+0000 (GMT)"而其他對象的日期類似"2014-03-06T10:52:56.875Z"waterline created影響排序順序

如果我更改了dql.js行:

if(self.autoCreatedAt) values.createdAt = new Date(); 

var today = new Date(); 
    if(self.autoCreatedAt) values.createdAt = today.toISOString(); 

然後排序順序出來正確。

重新啓動服務器後,這些值是正常的,可能是因爲數據是從磁盤讀取並轉換到某處。

我誤解了這種工作方式以及如何通過吃水線添加物體?

回答

1

我有類似的問題。但只有當我用日期字符串服務日期字段。

我通過將以下方法添加到我的模型來解決它: 它們在保存之前將日期字符串轉換爲日期對象。

... 
beforeCreate: function(values, cb) { 
    if(values.createdAt && typeof value.createdAt === 'string'){ 
     values.createdAt = new Date(Date.parse(values.createdAt)); 
    } 
    return cb(); 
}, 
beforeUpdate: function(values, cb){ 
    if(values.createdAt && typeof value.createdAt === 'string'){ 
     values.createdAt = new Date(Date.parse(values.createdAt)); 
    } 
    return cb(); 
} 
...