如何在帆中的updatedAt字段中设置自定义值

时间:2018-07-27 18:28:43

标签: javascript sails.js

我想通过2种方式保存updateAt。

1)如果我在保存数据时在该对象中传递了一些值,则它应在该日期之前保存,否则保存当前日期和时间。

ie今天的当前日期为Traceback (most recent call last): File "e:\python1\sqlcompactdb\compact.py", line 7, in <module> connection = adodbapi.connect(connection_string) File "C:\Users\khan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\adodbapi\adodbapi.py", line 116, in connect raise api.OperationalError(e, message) adodbapi.apibase.OperationalError: (InterfaceError("Windows COM Error: Dispatch('ADODB.Connection') failed.",), 'Error opening connection to "Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0; Data Source=E:\\python1\\sqlcompact\\first.sdf;"') ,如果我将updateAt设置为'2018-03-13 17:40:44',则应将其设置为'2018-03-13 17:40:44'< / p>

2)它应该像autoUpdatedAt = True一样保存。因此,如果未设置updatedAt,则应该使用当前日期和时间。

即今天的当前日期为2018-07-27 16:41:14,如果未设置updatedAt,则应将其设置为2018-07-27 16:41:14


感谢大家的努力。但是,我找到了以下解决方案。

在下面对特定的模型类别进行更改。

2018-07-27 16:41:14

// LifeCycle回调

  autoUpdatedAt: false,

updatedAt:{
      type: 'datetime',
      defaultsTo: function(){return new Date();},
    }

2 个答案:

答案 0 :(得分:1)

您需要使用日期选择器组件并将其设置为必填字段,可以轻松将其默认为当前日期。

答案 1 :(得分:1)

正如@mikermcneil所提到的,我也建议将其保存为JS时间戳。您可以在以后需要时使用momentJS对其进行格式化。我还要处理控制器而不是模型中的逻辑。因此,例如,在控制器中,您可以创建一个dataToUpdate对象,该对象可能包含也可能不包含updatedAt数据,然后,当您对数据库进行调用时,它看起来像:

Record.updateOne({id}).set({
    someField: dataToUpdate.someField,
    someOtherField: dataToUpdate.someOtherField,
    updatedAt: dataToUpdate.updatedAt ? dataToUpdate.updatedAt : Date.now(),
    ...
})