mongoose schemaType的get:方法 , 再取数据时,方法没有起到作用
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
找到解决办法了, 谢谢大家
最后改成这样就行了
一定要写这一句,在转JSON时才能调用get方法
schema.set('toJSON', { getters: true });