【问题标题】:How to subtract time -7 hours on node.js / loopback.io如何在 node.js / loopback.io 上减去时间 -7 小时
【发布时间】:2019-06-25 19:27:59
【问题描述】:

我正在使用 Loopback 3 创建 API,我有这样的模型

Section.js

Section.json

输出

我想将 start_date 减去 -7 小时,让它变成这样

...
"start_date": "2019-06-23T17:00:00.000Z",
...

我尝试像这样使用来自该线程How do I create getter and setter overrides?的getter

但什么都没有改变,是我执行错了吗?

【问题讨论】:

    标签: node.js loopbackjs


    【解决方案1】:

    是的,现在您必须在最后拨打Section.setup()。这是默认的User 模型。

    基本上,

    module.exports = function(User) {
    
    
      User.setup = function() {
        // We need to call the base class's setup method
        User.base.setup.call(this);
        var UserModel = this;
        UserModel.setter.email = function(value) {
          if (!UserModel.settings.caseSensitiveEmail) {
            this.$email = value.toLowerCase();
          } else {
            this.$email = value;
          }
        };
    
        return UserModel;
      };
    
      /*!
       * Setup the base user.
       */
    
      User.setup();
    };
    

    我不知道该怎么做,但我做了一个似乎可以工作的 MCVE(有错误):

    module.exports = function(Some) {
        Some.setup = function() {
            Some.base.setup.call(this);
            var UserModel = this;
            Some.getter.name = function(){
                console.log(this.$name);
                return this.$name+"lol";
            }
        }
        Some.setup();
    };
    

    【讨论】:

    • 太好了,现在 start_date 已更改,但始终显示 null。我尝试使用console.log(value); 打印value,但我得到undefined。为什么值返回未定义?
    • 因为getter 不需要参数,所以setter 需要它们。
    • 如果getter不需要参数,如何获取start_date值并减去它们?可以举个例子吗?
    • 编辑了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多