我很好奇,LB 是否像 RoR 一样在新模型创建时自动创建createdAt
和modified
字段? LB 文档说它应该,但是当我尝试创建一个新模型时,LB 不会创建这些字段。这是我在 MongoDB 集合中创建新模型和新文档的脚本:
'use strict';
var server = require('./server');
var ds = server.dataSources.mongodb;
var collections = ['user'];
ds.automigrate(collections, function(er) {
if (er) throw er;
console.log('== Looback tables [' + collections + '] created in ', ds.adapter
.name);
server.models.user.create([{
username: 'admin',
password: "admin",
email: 'admin@gmail.com',
}], function(err, newUser) {
if(err) {
console.error("== Create ERROR ==:\n\r", err);
ds.disconnect();
process.exit(1);
}
console.log('== newUser ==:\n\r', newUser);
ds.disconnect();
process.exit();
});
});
这是创建的文档。没有 createdAt
和 modified
字段:
[ { username: 'admin',
password: '$2a$10$.IqOjq1EEU1s1zEeb7IO7.tLAa0HljgS2frAR77AsoB8jgfZjWfi6',
email: 'admin@gmail.com',
id: 5642e5ecbf5d88742390971f } ]
如何启用该功能?或者我应该在每次创建新模型或修改现有模型时显式传递这些值吗?像这样:
server.models.user.create([{
username: 'admin',
password: "admin",
email: 'admin@gmail.com',
createdAt: new Date(), <--
modified: new Date() <--
}]
最佳答案
在您的模型定义文件中,您可以像这样添加 createdAt 属性
"createdAt": {
"type": "date",
"defaultFn": "now"
}
这将为每个文档创建添加时间戳。对于修改后的属性,据我所知没有开箱即用的解决方案。一种方法是使用 operation hook 'before save'在修改后的文档上设置时间戳。
关于loopbackjs - LoopbackJS 是否会在创建新模型时自动创建 createdAt 和 modified 字段?如何启用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645679/