环回模型CURRENT_TIMESTAMP

时间:2015-01-22 23:14:34

标签: loopbackjs strongloop

我有这样的模型 -

{
  "name": "MakeCallTestConfiguration",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "id": {
      "type": "number",
      "id": true,
      "generated": true
    },
    "destination": {
      "type": "string",
      "required": true
    },
    "clientId": {
      "type": "number",
      "required": true
    },
    "logTime":{
      "type" : "date",
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}

对于" logTime",如何自动生成时间戳?我的意思是

" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"

5 个答案:

答案 0 :(得分:12)

您可以使用“$ now”属性

"logTime":{
  "type": "date",
  "required": true,
  "default": "$now"
}

答案 1 :(得分:4)

更新您的模型JSON文件并将logTime字段更改为此

"logTime": {
    "type": "date",
    "dataType": "timestamp",
    "defaultFn": "now"
}

那样做。

答案 2 :(得分:1)

使用模型钩子(即beforeCreate)并在那里设置日期。这是一个使用远程钩子的例子(因为我没有使用模型钩子的例子) - https://github.com/strongloop/loopback-getting-started-intermediate/blob/master/common/models/review.js#L4

有关详细信息,请参阅模型挂钩文档:http://docs.strongloop.com/display/LB/Model+hooks

答案 3 :(得分:0)

Loopback有一些简洁的默认功能,可以满足您的需求。在Model.json文件中,您可以实现它。您的一个"模型的属性"是 defaultFn ,您可以使用" now"进行设置。属性来解决您的问题(请参阅代码示例)。

如文档中所述:

  

"现在":使用新Date()返回的当前日期和时间

其他很酷且有用的默认函数用于在模型定义文件上设置 guids uuids

代码示例

...
"properties": {
   ...
    "logTime":{
      "type" : "date",
      "defaultFn": "now"
    }
}, 
...

使用此设置,logTime的默认值将始终根据需要设置为当前时间戳。

参考

Loopback文档有时候很糟糕,但是真正付出了阅读主要部分并进一步调查它们在github上提供的许多示例。目前,如果您想了解有关defaultFn功能的更多信息,请使用以下网址:

http://loopback.io/doc/en/lb2/Model-definition-JSON-file.html#general-property-properties

答案 4 :(得分:0)

如果您查看Loopback Documentation,您将看到是否指定了创建Javascript日期对象的日期,无论如何。因此,如果您需要Unix TimeStamp,您可以在模型上创建类型数字(或甚至是String),然后如果使用 new Date()创建,它将另存为时间戳。这是一个例子:

你的模特:

"logTime":{
  "type" : "number"
}

你的逻辑:

yourModel.logTime = new Date();

你的结果:

{
  .
  "logTime": 1480437102036
  .
}