Reputation: 121
API resolved without sending a response for /api/addproducts, this may result in stalled requests.
This is add product API and below is my code for that API
I Have debugged it using the console . Below is my code I am struggling to find error but could not succeed to do so.
import Product from "../../models/Products"
import dbConnect from "../../middlewear/db"
export default async function handler (req, res){
const {method}=req
dbConnect()
if(method==='POST'){
try {
let product=await new Product(req.body)
savedProduct=await product.save()
return res.status(200).json({ message: "success" });
} catch (error) {
res.status(500).json({status:"Internal server error", message:error.message})
}
}
}
THIS IS a DATABASE Connection to NEXT JS application
import mongoose from "mongoose"
const MONGNODB_URL=process.env.MONGNODB_URL
if(!MONGNODB_URL){
throw new Error(
"Please define mongo URI inside .env.local" )
}
let cashed=global.momgoose
if(!cashed){
cashed=global.mongoose={conn:null,promise:null}
}
async function connectDB(){
if(cashed.conn){
return cashed.conn}
if(!cashed.promise){
const opts={
bufferCommands:false
}
cashed.promise= await mongoose.connect(MONGNODB_URL,opts).then((mongoose)=>{
return mongoose
})
}
cashed.conn=await cashed.promise
return cashed.conn
}
export default connectDB
Upvotes: 1
Views: 1027
Reputation: 121
The problem got solved by following code
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import Product from "../../models/Products"
import dbConnect from "../../middlewear/db"
export default async function handler (req, res){
const {method}=req
dbConnect()
if(method==='POST'){
let product=await new Product(req.body)
let savedProduct=await product.save()
return res.status(200).json({ message: "success",savedProduct });
}else{
res.status(424).json({status:"Product not added"})
}
}
Upvotes: 1