gpt4 book ai didi

javascript - Mongoose 错误 [CastError] : Cast to string failed for value "{}" at path "userData.email" for model "order"

转载 作者:行者123 更新时间:2023-12-03 12:18:19 31 4
gpt4 key购买 nike

我想通过电子邮件获取给定用户搜索的订单:“admin”,但出现错误:

MongooseError [CastError]: Cast to string failed for value "{}" at path "userData.email" for model "order".

我没有收到任何回复。

后台-js文件:

router.get('/user-orders', (req, res) => {
const user = req;
Order.find({ "userData.email": user }, (error, order) => {
if (error) {
console.log(error);
} else {
return res.json({ order });
}
})
})

前端 - 服务:

 userOrders(user) {
return this.http.get<User>(this.userOrdersUrl, user);
}

前端 - ts 文件:

  constructor(private orderService: OrderService, private router: Router) {
this.orderService.userOrders('admin').subscribe(
res => console.log(res),
err => console.log(err)
);
}

如果我在后端声明“用户”——一切正常:

router.get('/user-orders', (req, res) => {
const user = 'admin';
Order.find({ "userData.email": user }, (error, order) => {
if (error) {
console.log(error);
} else {
return res.json({ order });
}
})
})

enter image description here

但我必须从前端发送字符串“admin”。如何解决?

编辑:

订购型号:

const orderSchema = new Schema({
userData: {
firstname: String,
lastname: String,
address: String,
postcode: Object,
city: String,
country: String,
email: String,
phone: Number
},
items: {},
shipping: String,
sum: Number,
created: {
type: Date,
default: Date.now()
},
status: {
type:String,
default: 'order_placed'
}
});

最佳答案

我会更改您的路由器,以期望 url 中的用户 ID/电子邮件作为路径参数,然后该表达式将填充到 req.params

router.get('/user-orders/:id', (req, res) => {
Order.find({ "userData.email": req.params.id}, (error, order) => { ... });
}

然后,在您的前端,您需要将 url 调整为:

userOrders(userIdOrEmail) {
return this.http.get<User>(`${this.userOrdersUrl}/${userIdOrEmail}`);
}

关于javascript - Mongoose 错误 [CastError] : Cast to string failed for value "{}" at path "userData.email" for model "order",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65107645/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com