Wie überprüfe ich, ob ein Mongo/Mungo-Wert existiert, bevor ich in einer Post-Route fortfahre?MongoDB auf vorhandenen Wert prüfen
Mein (teilweise) Mongoose Modell sieht wie folgt aus:
reserved: {type: Boolean, default: false}
module.exports = mongoose.model("Rentals", rentalsSchema);
Ich habe zu prüfen, versucht, um zu sehen, reserviert, wenn ohne Erfolg auf diese Weise wahr ist
HINWEIS: Wie Sie siehe unten, das muss für jede Miet-ID funktionieren, so dass es irgendwie gefunden werden muss.
router.put("/:id/reserve", middleware.checkRentalsStatus, function(req, res){
//checking here for existing value
//checking here for existing value
if(Rentals.reserved == true){
res.redirect("back");
console.log('TAKEN!')
} else {
// Token is created using Stripe.js or Checkout!
// Get the payment token submitted by the form:
var token = req.body.stripeToken; // Using Express
// Charge the user's card:
var charge = stripe.charges.create({
amount: 19500,
currency: "usd",
description: "",
source: token,
}, function(err, charge) {
if(err){
req.flash("error", err.message);
res.redirect("back");
} else {
var reservedby = req.body.reservedby;
var reserved = true;
var reservedemail = req.body.reservedemail;
var newReservation = {reserved: reserved, reservedby: reservedby, reservedemail: reservedemail }
Rentals.findByIdAndUpdate(req.params.id, {$set: newReservation}, function(err, rentals){
if(err){
req.flash("error", err.message);
res.redirect("back");
} else {
req.flash("success","It's reserved for you. Thank you!");
res.redirect("/rentals/" + rentals._id);
}
});
}
});
console.log('charged')
});
Wie würde ich meinen Code ändern, um zu prüfen, ob reserviert ist, bevor die Post-Route beendet wird? (Ich versuche, zu überprüfen, ob eine Vermietung auf einer Reserveroute im Backend zur Verfügung.)
Bitte geben Sie den vollständigen Code. –
Was ist in diesem Fall Vermietung und wie haben Sie den Wert von Mongo abgerufen. –
Probieren Sie es einfach so aus, dass ich es normalerweise in meinem Code probiere. if (Rentals.reserved) { res.redirect ("zurück"); console.log ('TAKEN!') } else { // weiter mit post route –