猫鼬中有Map data type,可以存储任意密钥。
我了解要获取和设置值,我应该使用get
和set
方法。但是,当我向前端发送对象时,Nodejs仅发送空的JSON对象。
有没有一种方法可以自动将具有Map类型的Mongoose对象转换为JSON对象以通过网络发送,而无需在后端使用get
提取每个密钥?
我的模特:
var mongoose = require('mongoose');
var User = require('./user');
var Post = require('./post');
const Schema = mongoose.Schema;
const ObjectId = mongoose.Schema.Types.ObjectId;
const DescriptionSchema = new Schema({
timeStamp: {type: Date, default: Date.now},
postid: {type: ObjectId, ref: 'Post'},
userid: {type: ObjectId, ref: 'User'},
dstrings:{
type: Map,
of: String// key value
}
});
module.exports = mongoose.model('Description', DescriptionSchema);
我的控制器:
// '/v1/description/add'
api.post('/add', authenticate,(req, res) => {
let description = new Description({
postid: ObjectId(req.body.postid),
userid: ObjectId(req.user.id),
dstrings:req.body.dstrings,
});
description.save(function(err, description) {
if (err) {
res.status(500).json({ message: err });
} else {
// description.dstrings is equal to {} on the frontend
res.status(200).json( description );
}
});
});
JSON.stringify无法正常工作;我检查了数据库,它具有值。