עזרה heroku + mongoose
-
אשמח לעזרה
בניתי בexpress אפליקציה שטוענת מערך של מסמכים שנמצאים בmongo atlas
וכשאני ניגש לזה דרך המחשב המקומי http://localhost:3000/ זה עובד מצוין.
אבל כשהעלתי את זה לheroku ואני ניגש דרך heroku, זה משום מה מגיש לי מערך ריק []
מה יכול להיות הסיבה לכך??מסתמא זה לא רלוונטי אבל הנה הקוד :
const express = require('express'); const morgan = require('morgan'); const cors = require('cors'); const path = require('path') const history = require('connect-history-api-fallback') const mongoose = require('mongoose'); const blogs = require('./routes/blogs') const app = express(); let connect = false mongoose.connect(process.env.MONGO_URI ||"mongodb://127.0.0.1:27017/blog", { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true, } ).then(() => {connect = true app.listen(process.env.PORT || 3000, () => { console.log('Example app listening on port 3000!'); }); }).catch((err)=>{console.log(err)}) app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })) app.use(morgan('tiny')); app.use('/blogs',blogs)
const mongoose = require ("mongoose") const Schema = mongoose.Schema; const blogSchema = new Schema({ title: {type:String, required: true }, subtitle: {type:String, required: true }, body: {type:String, required: true } },{timestamps : true}) const Blog = mongoose.model('Blog',blogSchema); module.exports = Blog;
const express = require('express'); const router = express.Router(); const Blog = require('../models/blog') router.get('/all', async (req, res) => { try { const blogs = await Blog.find() res.send(blogs) } catch (error) { console.log(error) } }) module.exports = router
כאמור לעיל דרך localhost 3000 זה עובד מצוין
-
@dovid
כי הגדרתי את החיבור"process.env.MONGO_URI ||"mongodb://127.0.0.1:27017/blog"
את המסמכים למונגו הוספתי דרך localhost 3000 כך שהוא הכיר רק את החיבור השני שזה המונגו המקומי שלי, ואילו כשנגשתי דרך הרוקו לקבל את המסמכים הוא ניגש לחיבור הראשון שזה משתנה גלובלי של מונגו אטלס, לכן הוחזר מערך ריק כי אין בקולקשן כלום..
בקיצור טעות טפשית..