noman sanaullah
noman sanaullah

Reputation: 121

API resolved without sending a response for /api/addproducts, this may result in stalled requests

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

Answers (1)

noman sanaullah
noman sanaullah

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

Related Questions