Home > Software design >  Cannot GET while using mongoose
Cannot GET while using mongoose

Time:01-06

my router.js

const express = require("express")
const Note = require("../models/nodeModel")
const router = express.Router()

router.route("/notes").get((req, res) => {
    Note.find({ show_day: "2020-9-10" })
        .then(foundNotes => res.json(foundNotes))
})

module.exports = router

my server.js

const express = require("express")
const app = express()
const cors = require("cors")
const mongoose = require("mongoose");

app.use(cors())
app.use(express.json())

mongoose.connect("mongodb://localhost:27017/my-app")

app.use("/",require("./routes/noteRouter"))

app.listen(3000,function(){
    console.log("server is running on port 3000");
})

my nodeModel.js

const mongoose = require('mongoose')

const noteSchema = {
    show_day:String,
    diary_day: String,
    content: String
}

const Note = mongoose.model("diary",noteSchema)

module.exports = Note;

When I try to console.log Note.find(), it works. But when I run server.js, browser says Cannot GET/ Why it can't work?

CodePudding user response:

You only have /notes endpoint, there's no / route.

You should change route in router.js like this:

const express = require("express")
const Note = require("../models/nodeModel")
const router = express.Router()

router.route("/").get((req, res) => {
    Note.find({ show_day: "2020-9-10" })
        .then(foundNotes => res.json(foundNotes))
})

module.exports = router

or access /notes instead of /.

  •  Tags:  
  • Related