node.js - 模型“wallet”的路径“_id”中值“me”的转换为 ObjectId 失败
问题描述
大家好吗,我想在节点中获取用户的数据。表示单个用户的所有数据。像这样一个是注册数据,另一个是付款。现在,我想获得用户支付的所有款项。我试过这个。但是这个错误来了也许我无法正确编写代码。所以请指导我。
获取用户付款方式
router.get('/me', auth, async (req, res) => {
UserWallet.find()
.select("user", " id user")
.populate("user ", "_id user")
.exec()
.then(result => {
res.json({ result })
})
.catch(error => {
console.error(error.message)
res.status(500).send('Server Error')
})
});
用户付款的过帐方式
router.post(
'/payment/add',
async (req, res) => {
try {
const user = await users.findById(req.user.id).select('-password');
const { bankName, tranferRefCode, amount } = req.body;
const newPayment = new UserWallet({
bankName,
tranferRefCode,
amount,
username: user.username,
avatar: user.avatar,
user: req.user.id
});
await newPayment.save().then(payment => {
res.json({ newPayment: payment })
})
} catch (err) {
console.error(err.message);
res.status(500).send('Server Error');
}
}
);
用户支付模式
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const walletSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: 'user'
},
bankName: {
type: String,
},
tranferRefCode: {
type: String,
},
amount: {
type: String,
},
username: {
type: String
},
avatar: {
type: String
},
date: {
type: Date,
default: Date.now
}
})
module.exports = Wallet = mongoose.model('wallet', walletSchema)
支付结果添加
{
"newPayment": {
"_id": "5ec0a61597d09440249a1dcc",
"bankName": "sbi",
"tranferRefCode": "kfjalskdfjkasdfjajs",
"amount": "1000",
"username": "s",
"avatar": "https://gravatar.comxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?d=mm&r=pg&s=200",
"paymentBy": "5eb2fa29d37d9a08741621c8",
"date": "2020-05-17T02:48:53.662Z",
"__v": 0
}
}
解决方案
这是100%的工作
router.get('/myPayment/user', auth, async (req, res) => {
UserWallet.find({ paymentBy: req.user.id })
.populate("paymentBy", "_id username email")
.then(myPanment => {
res.json({myPanment})
})
.catch(err => {
console.log(err);
res.json({msg: err})
})
});
此响应结果
{
"myPanment": [
{
"_id": "5ec38e65b4af0b1e4ce9ff95",
"bankName": "PUNB",
"tranferRefCode": "xsxsdsdsdmskdmskdmksdmS",
"amount": "51000",
"username": "satendrasingh",
"avatar": "https://gravatar.com/avatar/xxxxxxxx?d=mm&r=pg&s=200",
"paymentBy": {
"_id": "5eb1562e166a03269c3f2d82",
"username": "xxxxx",
"email": "s@gmail.com"
},
"date": "2020-05-19T07:44:37.870Z",
"__v": 0
},
{
"_id": "5ec38f34dd1b131ac4a3d644",
"bankName": "Singh",
"tranferRefCode": "Singh7536051428",
"amount": "8000",
"username": "satendrasingh",
"avatar": "https://gravatar.com/avatar/xxxxxxxxx?d=mm&r=pg&s=200",
"paymentBy": {
"_id": "5eb1562e166a03269c3f2d82",
"username": "xxx",
"email": "s@gmail.com"
},
"date": "2020-05-19T07:48:04.286Z",
"__v": 0
},
{
"_id": "5ec38f62d12b642de859083a",
"bankName": "ljhjkhkjh",
"tranferRefCode": "jhksjhjkhjk5h3k5jhj53h4j53hk5hj5k345657567",
"amount": "548732",
"username": "satendrasingh",
"avatar": "https://gravatar.com/avatar/xxxxxxxxxx?d=mm&r=pg&s=200",
"paymentBy": {
"_id": "5eb1562e166a03269c3f2d82",
"username": "xxxxxxxx",
"email": "s@gmail.com"
},
"date": "2020-05-19T07:48:50.885Z",
"__v": 0
}
]
}
推荐阅读
- javascript - 重新缩放图像使其在javascript中变黑
- office365 - 使用 EWS 不会返回来自 O365 邮箱的 ReferenceAttachment 类型 (ATTACH_BY_WEB_REF) 的附件
- wordpress - 开发wordpress网站时哪些功能是无法开发的
- laravel - .gitignore 中应该有存储吗?拉拉维尔
- python - 为给定的点云分割上边缘线和下边缘线?
- c++ - “使用命名空间 Bar”和“使用 Bar::Foo”有什么区别?
- javascript - 代码中的 helperText 错误也添加了验证,但它不起作用
- javascript - Prism 脚本未在用户输入 InnerText 上运行
- svg - 在 svg 中制作半个轮廓
- jquery - jquery在类更改时显示/隐藏