我有一个非常奇怪的问题:
在我的" Message.js"文件我已经定义了一个模式:
const mongoose = require('mongoose');
const moment = require('moment');
const Schema = mongoose.Schema;
const MessageSchema = new Schema({
content: {
type: String,
required: [true, 'Cannot Be Empty!']
},
type: {
type: Number,
enum: [0, 1, 2, 3, 4]
},
target: { type: [], default: ['all'] },
target_user: { type: [], default: ['all'] },
ext: {},
create_time: {
type: Number,
default: function () {
return moment().unix();
}
}
});
const MessageModel = mongoose.model("MessageModel", MessageSchema);
module.exports = MessageModel;
然后我通过使用以下代码将此文件引用到另一个模型中:
const MessageModel = require('../../common/model').MessageModel;
exports.messageList = function (req, res) {
.....
MessageModel.find(queryParams).skip(offset)
.limit(limit)
.sort({ create_time: -1 })
.exec(function (err, data) {
if (err) {
res.error(err);
}
else {
res.success(data);
}
});
};
让我感到惊讶的是," exec"永远不会被调用,这意味着永远不会调用res来返回实际值。我试过" findOne","删除" ....等。它们对我来说都很好除了Visual Studio Code中的查找....为什么?
任何人都可以帮我一把吗? Reguards!
答案 0 :(得分:0)
你可以试试()。它是更好的方法
const MessageModel = require('../../common/model').MessageModel;
exports.messageList = function (req, res) {
MessageModel.find(queryParams).skip(offset)
.limit(limit)
.sort({ create_time: -1 })
.then((data) => {
if (data) {
res.status(200).json(data);
}
else {
res.status(500).json({ message: 'Internal Server error'});
}
});
};