在保存到Mongoose(ExpressJS)中之前如何在Model中格式化数据

拉朱

我从用户处以字符串格式获取日期,并且当前在创建Schema对象和保存之前在控制器中将其转换为Date。有没有一种方法可以将这种逻辑转换为模型,因为在我看来,“模型”是正确的选择

var RunSchema = new Schema({
    created: {
        type: Date,
        default: Date.now
    },
    starttime: {
        type: Date,
        default: Date.now
    }

});

目前,我正在这样做

//req.body = {starttime;'2.05.2013 11:23:22'}
var run = new Run(req.body);
// util.getDate(datetime) returns false if invalid and Date() if valid
// req.body.starttime = '2.05.2013 11:23:22';
run.starttime = util.getDate(req.body.starttime);
run.save(function(err) {
    if(err) {
    } else {
    }
});

在旁注中,如何断言是否要在自定义函数检查中处理参数。就像是

    req.assert('name', 'Name can\'t be empty').len(1, 1000);
马蒂亚斯

虽然我不确定的含义req.body.starttime,但是我很确定您正在寻找Schema对象pre()函数,该函数是Mongoose中间件的一部分,允许在保存数据之前执行回调函数的定义。可能是这样的事情完成了预期的工作:

var RunSchema = new Schema({
  [...]
  starttime: {
    type: Date,
    default: Date.now
  }
});

RunSchema.pre('save', function(next) {
  this.starttime = new Date();
  next();
});

请注意,save每次创建或更新记录之前都会调用事件的回调函数因此,这是例如显式设置“修改的”时间戳的方法。

编辑:

感谢您的评论,现在我对您要实现的目标有了更好的了解。如果要在分配数据并将其持久化到记录之前修改数据,则可以轻松利用setSchema属性:

// defining set within the schema
var RunSchema = new Schema({
  [...]
  starttime: {
    type: Date,
    default: Date.now,
    set: util.getDate
  }
});

假设对象util在范围内(必需或其他),您当前的实现适合该属性的签名set

function set(val, schemaType)

可选参数schemaType允许您检查转换过程是否以任何方式依赖架构字段定义的属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在AngularJS的视图中格式化数据?

来自分类Dev

如何在rmarkdown中格式化数据帧

来自分类Dev

如何在ASP.NET中格式化数据

来自分类Dev

如何在PrettyTable中格式化数据?

来自分类Dev

如何在Grape中的参数中格式化DateTime

来自分类Dev

如何在Struts 2中格式化货币?

来自分类Dev

如何在Struts 2中格式化货币?

来自分类Dev

如何在Python中的单个HTTP POST请求中格式化多个数据?

来自分类Dev

如何在python中的类别中格式化我的数据

来自分类Dev

如何重新格式化数据以便仅使用Mongoose保存到MongoDB以避免“ not okForStorage”?

来自分类Dev

如何在数据表的数据列中格式化datetimeshortstring格式

来自分类Dev

如何在Visual Studio Code中格式化保存的HTML-Eex文件?

来自分类Dev

如何在 Flutter 中格式化 DateTime,如何在 Flutter 中获取当前时间?

来自分类Dev

如何在javascript中格式化数据库日期时间?

来自分类Dev

将数据发布到REST端点时如何在AngularJS中格式化日期

来自分类Dev

如何在Angular 2中格式化JS对象中的日期?

来自分类Dev

如何在Django模板中格式化XMLtext

来自分类Dev

如何在Jmeter中格式化JSON响应?

来自分类Dev

如何在C中格式化小数?

来自分类Dev

如何在Java中格式化日期范围?

来自分类Dev

如何在SQL SERVER中格式化日期时间

来自分类常见问题

如何在Vue组件中格式化货币?

来自分类Dev

如何在Aspose中格式化单元格

来自分类Dev

你如何在python中格式化日期时间

来自分类Dev

如何在Html.TextBoxFor中格式化DateTimeOffset?

来自分类Dev

如何在Qt小部件中格式化文本

来自分类Dev

如何在流星模板中格式化日期

来自分类Dev

如何在python中格式化电话号码

来自分类Dev

如何在Webmatrix中格式化GET请求的URL

Related 相关文章

  1. 1

    如何在AngularJS的视图中格式化数据?

  2. 2

    如何在rmarkdown中格式化数据帧

  3. 3

    如何在ASP.NET中格式化数据

  4. 4

    如何在PrettyTable中格式化数据?

  5. 5

    如何在Grape中的参数中格式化DateTime

  6. 6

    如何在Struts 2中格式化货币?

  7. 7

    如何在Struts 2中格式化货币?

  8. 8

    如何在Python中的单个HTTP POST请求中格式化多个数据?

  9. 9

    如何在python中的类别中格式化我的数据

  10. 10

    如何重新格式化数据以便仅使用Mongoose保存到MongoDB以避免“ not okForStorage”?

  11. 11

    如何在数据表的数据列中格式化datetimeshortstring格式

  12. 12

    如何在Visual Studio Code中格式化保存的HTML-Eex文件?

  13. 13

    如何在 Flutter 中格式化 DateTime,如何在 Flutter 中获取当前时间?

  14. 14

    如何在javascript中格式化数据库日期时间?

  15. 15

    将数据发布到REST端点时如何在AngularJS中格式化日期

  16. 16

    如何在Angular 2中格式化JS对象中的日期?

  17. 17

    如何在Django模板中格式化XMLtext

  18. 18

    如何在Jmeter中格式化JSON响应?

  19. 19

    如何在C中格式化小数?

  20. 20

    如何在Java中格式化日期范围?

  21. 21

    如何在SQL SERVER中格式化日期时间

  22. 22

    如何在Vue组件中格式化货币?

  23. 23

    如何在Aspose中格式化单元格

  24. 24

    你如何在python中格式化日期时间

  25. 25

    如何在Html.TextBoxFor中格式化DateTimeOffset?

  26. 26

    如何在Qt小部件中格式化文本

  27. 27

    如何在流星模板中格式化日期

  28. 28

    如何在python中格式化电话号码

  29. 29

    如何在Webmatrix中格式化GET请求的URL

热门标签

归档