api/index.js
<code>app.get('/api', (req, res) => {
res.send("Hello from Node API server!");
});
app.get('/api/hello', (req, res) => {
res.send("Hello!");
});
app.use("/api/v1/auth", authRoutes)
app.use("/api/v1/user", userRoutes)
app.use("/api/v1/product", productRoutes)
app.use("/api/v1/order", orderRoutes)
app.listen(port, () => {
connectDB()
console.log(`${chalk.green('✓')} ${chalk.blue(
`Listening on port ${port}. Visit http://localhost:${port}/ in your browser.`
)}`)
})
</code>
<code>app.get('/api', (req, res) => {
res.send("Hello from Node API server!");
});
app.get('/api/hello', (req, res) => {
res.send("Hello!");
});
app.use("/api/v1/auth", authRoutes)
app.use("/api/v1/user", userRoutes)
app.use("/api/v1/product", productRoutes)
app.use("/api/v1/order", orderRoutes)
app.listen(port, () => {
connectDB()
console.log(`${chalk.green('✓')} ${chalk.blue(
`Listening on port ${port}. Visit http://localhost:${port}/ in your browser.`
)}`)
})
</code>
app.get('/api', (req, res) => {
res.send("Hello from Node API server!");
});
app.get('/api/hello', (req, res) => {
res.send("Hello!");
});
app.use("/api/v1/auth", authRoutes)
app.use("/api/v1/user", userRoutes)
app.use("/api/v1/product", productRoutes)
app.use("/api/v1/order", orderRoutes)
app.listen(port, () => {
connectDB()
console.log(`${chalk.green('✓')} ${chalk.blue(
`Listening on port ${port}. Visit http://localhost:${port}/ in your browser.`
)}`)
})
db/connect.js
<code>import mongoose from "mongoose"
export const connectDB = async() => {
try{
console.log(process.env.MONGO_URI)
const conn = await mongoose.connect(process.env.MONGO_URI)
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch(error){
console.error(`Error: ${error.message}`)
process.exit(1)
}
}
</code>
<code>import mongoose from "mongoose"
export const connectDB = async() => {
try{
console.log(process.env.MONGO_URI)
const conn = await mongoose.connect(process.env.MONGO_URI)
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch(error){
console.error(`Error: ${error.message}`)
process.exit(1)
}
}
</code>
import mongoose from "mongoose"
export const connectDB = async() => {
try{
console.log(process.env.MONGO_URI)
const conn = await mongoose.connect(process.env.MONGO_URI)
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch(error){
console.error(`Error: ${error.message}`)
process.exit(1)
}
}
api/routes/productRoute.js
<code>router.get('/', getAllProducts)
</code>
<code>router.get('/', getAllProducts)
</code>
router.get('/', getAllProducts)
api/controllers/productController.js
<code>export const getAllProducts = async(req, res) => {
try{
const products = await Product.find({})
console.log(products)
res.status(200).send({
success: true,
products
})
} catch(error){
res.status(500).send({
success: false,
message: "Error in fetching products!",
error
})
console.log(error)
}
}
</code>
<code>export const getAllProducts = async(req, res) => {
try{
const products = await Product.find({})
console.log(products)
res.status(200).send({
success: true,
products
})
} catch(error){
res.status(500).send({
success: false,
message: "Error in fetching products!",
error
})
console.log(error)
}
}
</code>
export const getAllProducts = async(req, res) => {
try{
const products = await Product.find({})
console.log(products)
res.status(200).send({
success: true,
products
})
} catch(error){
res.status(500).send({
success: false,
message: "Error in fetching products!",
error
})
console.log(error)
}
}
After I deployed the MERN Stack project to vercel, the api controllers could not read MongoDB data even I passed the MONGO_URI
in environmental variables settings. It shows the error message MongooseError: Operation `products.find()` buffering timed out after 10000ms at Timeout.<anonymous>
that I could not figure out since when running on local it could show out data.
I successfully deployed the app but the api still not working correctly so may need some help