loopbackjs - LoopbackJS 是否会在创建新模型时自动创建 createdAt 和 modified 字段?如何启用?

标签 loopbackjs strongloop

我很好奇,LB 是否像 RoR 一样在新模型创建时自动创建createdAtmodified 字段? 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();
    });
});

这是创建的文档。没有 createdAtmodified 字段:

 [ { 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/

相关文章:

javascript - 如何使用loopback api和angularjs检索最新创建的记录

mysql - 连接失败 : Error: connect ETIMEDOUT

node.js - 环回查找返回空

loopbackjs - 每个模型只能注册一次 loopback.io 操作 Hook 吗?

loopbackjs - 是否可以在 Loopback 的远程方法中获取当前用户的角色?

mysql - API 服务器返回 404 错误

javascript - 如何继续实现混合移动应用理念?

angularjs - 如何在 Angular 中执行 Hapi.js/Strongloop 验证?

node.js - StrongLoop ACL 表不存在

javascript - Loopback - 电子邮件作为复合键