想要获取所有用户,但只返回 _ids 列表,检查数据库中保存的数据,一切似乎都很好。这是用户模型let UserSchema = new mongoose.Schema({ firstName: { type: String, minlength: 3, trim: true, }, lastName: { type: String, minlength: 3, trim: true, }, biography: { type: String, minlength: 5, trim: true, }, }); UserSchema.methods.toJSON = function () { let user = this; let userObject = user.toObject(); return _.pick(userObject, ["_id", "firstName", "email"]); };这是我的控制器功能const controller = { fetchUsers :async (_req, res) => { try { await User.find({}) .then((users) => { res.status(200).send(users); }) .catch((err) => { res.status(400).send(err); }); } catch (error) { res.status(400).json({ Error: `something is wrong. ${error}`, }); } }}我在邮递员中测试的结果是:[ { "_id": "5fe26ba0d290a216c0fe6d5d" }, { "_id": "5fe26c8e40ca9a06b8c96259" }, ]
2 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
问题是UserSchema.methods.toJSON
方法没有任何电子邮件字段,如果我们想过滤输出数据,最好通过mongoose.find({"condition"},{"fields"})
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
不要同时使用 .then 和 wait 。尝试一次。假设模型是正确的。
const controller = {
fetchUsers :async (_req, res) => {
try {
const users=await User.find({}).exec()
if(users){
res.status(200).send(users);
}
else{
res.status(404).send("no user found");
};
} catch (error) {
res.status(500).json({
Error: `something is wrong. ${error}`,
});
}
}
}
添加回答
举报
0/150
提交
取消