mongoose schemaType的get:方法 , 再取数据时,方法没有起到作用

发布于 2022-09-07 07:37:53 字数 1138 浏览 8 评论 0

domain.js 代码如下

var mongoose = require('mongoose')
var moment = require('moment')
var Schema = mongoose.Schema
function dateformat(val) {
    console.log('dateformat' + val);//这里的调试都没有执行

    return moment(val).format('YYYY-MM-DD');
}
var schema = new Schema({
    id: Number,
    domain: String,
    title: {
        type: String
    },
    keyword: String,
    describe: String,
    date: {
        type: Date,
        default: Date.now,
        get: dateformat //这里想在get数据的时候,调用dateformat()方法,格式化日期
    }
})
module.exports = schema

express.js代码如下

var express = require('express');
var domains = require('../../models/domains')//导入models ,schema为上面的domain.js
var router = express.Router();
var info = {}
router.get('/domain', async (req, res) => {
  var domaindb
  where = {}
  domaindb = domains.findOne(where).exec()
  domaindb = await domaindb
  
  console.log(domaindb)//调试出来的domaindb,date没有被日期格式化,求大佬帮助.不知道是哪步错了
  if (domaindb) {
    info.code = 0
    info.message = domaindb
  } else {
    info.code = -1
    info.message = '加载失败'
  }
  return res.json(info);
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画尸师 2022-09-14 07:37:53

找到解决办法了, 谢谢大家
最后改成这样就行了

date: {
    type: Date,
    default: Date.now,
    get(val){
        return moment(val).format('YYYY-MM-DD HH:mm:ss');
    }
}
我的痛♀有谁懂 2022-09-14 07:37:53

一定要写这一句,在转JSON时才能调用get方法
schema.set('toJSON', { getters: true });

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文