I am trying to create a Order submission Controller but i want to add a sequence to order_id field. When i try to run getNextSequence function from controller it returns null value and my api call throughs below error
“message”: “Order validation failed: order_id: Please Enter Order Id”
Below is my Counter model Code
`var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var counterSchema = new Schema({
seq: {
type: String,
required: [true, "Please Enter Seq No"],
},
});
module.exports = mongoose.model("Counter", counterSchema);`
Below is function
`const Counter = require("../models/counterModel");
const getNextSequence = (name) => {
var ret = Counter.findOneAndUpdate({
query: { _id: name },
update: { $inc: { seq: 1 } },
new: true,
});
return ret.seq;
};
module.exports = getNextSequence;`
Below is my Controller code to create a new order
exports.createOrder = catchAsyncErrors(async (req, res, next) => {
let nextOrderId = getNextSequence("order_id");
const newreq = {
order_id: nextOrderId,
status: req.body.status,
stage: req.body.stage,
};
console.log(newreq);
const order = await Order.create(newreq);
res.status(200).json({
success: true,
order,
});
});
in console.log newreq shows like this
{ order_id: undefined, status: 'preparing', stage: 'in oven' }
Somehow function is not passing order_id sequence number e.g. 3,4,5 to Controller.
Tried to find root cause of issue but not successful