Gre*_*een 2 strongloop loopbackjs
我很好奇,LB会自动创建createdAt
和创建modified
新模型的字段,就像RoR一样吗?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();
});
});
Run Code Online (Sandbox Code Playgroud)
这是创建的文档.不createdAt
和modified
字段:
[ { username: 'admin',
password: '$2a$10$.IqOjq1EEU1s1zEeb7IO7.tLAa0HljgS2frAR77AsoB8jgfZjWfi6',
email: 'admin@gmail.com',
id: 5642e5ecbf5d88742390971f } ]
Run Code Online (Sandbox Code Playgroud)
如何启用该功能?或者我应该在每次创建新模型或修改现有模型时显式传递这些值?像这样:
server.models.user.create([{
username: 'admin',
password: "admin",
email: 'admin@gmail.com',
createdAt: new Date(), <--
modified: new Date() <--
}]
Run Code Online (Sandbox Code Playgroud)
在模型定义文件中,您可以像这样添加createdAt属性
"createdAt": {
"type": "date",
"defaultFn": "now"
}
Run Code Online (Sandbox Code Playgroud)
这将在每个文档创建时添加时间戳.对于修改后的属性,没有我所知道的开箱即用的解决方案.一种方法是在保存之前使用操作钩子来设置修改文档的时间戳.
归档时间: |
|
查看次数: |
1448 次 |
最近记录: |