עזרה 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 זה עובד מצוין
-
@ב-ל אמר בעזרה heroku + mongoose:
mongodb://127.0.0.1:27017/blog
כי זה לא נגיש לה, כנראה, זה קיים רק בתוך המחשב שלך.
האם הגדרת את זה:process.env.MONGO_URI
?
-
@5566brs אמר בעזרה heroku + mongoose:
האם הגדרת את זה:
process.env.MONGO_URI
?
כן, וגם בדקתי שהוא אכן מחובר
-
הסתדרתי!!
וכמו תמיד, זה היה איזה בעייה טיפשית..
החיבור הוגדר ל mongodb://127.0.0.1:27017/blog
שזה מפנה למונגו שמותקן לי במחשב ולא ל mongo atlas
וכהוספתי מסמכים לקולקשן הוא הוסיף את זה למונגו המקומי ואילו mongo atlas נשאר ריק -
@dovid
כי הגדרתי את החיבור"process.env.MONGO_URI ||"mongodb://127.0.0.1:27017/blog" את המסמכים למונגו הוספתי דרך localhost 3000 כך שהוא הכיר רק את החיבור השני שזה המונגו המקומי שלי, ואילו כשנגשתי דרך הרוקו לקבל את המסמכים הוא ניגש לחיבור הראשון שזה משתנה גלובלי של מונגו אטלס, לכן הוחזר מערך ריק כי אין בקולקשן כלום..
בקיצור טעות טפשית..
4/6