邮递员返回空响应

时间:2020-08-29 22:11:05

标签: node.js mongodb express postman backend

我正在将应用程序的后端连接到mongodb,当我对邮递员进行测试时,它返回一个空的主体-我不知道发生了什么。数据库已成功连接。

我已经编码了一个包含5个条目的模型,如下所示,并且还有app.js文件(也在下面)。我已将路由放入app.js文件中以使其更加清晰。我已经仔细检查过,并且已经导出了所有内容,但不知道出了什么问题。我已经以其他方式对其他React应用程序的后端进行了编码,邮递员一直工作得很好。

此外,我的邮递员设置将“ Content-Type”设置为application / json,其他所有内容均未选中。

app.js:

const express = require('express')
const mongoose = require('mongoose')
const cors = require('cors')
const bodyParser = require('body-parser')
const router = require('express').Router();
const DiaryEntry = require('./models/diaryEntry')
require('dotenv').config()

//App
const app = express()

//database
mongoose.connect(process.env.ATLAS_URI, {
  useNewUrlParser: true,
}).then(() => console.log("Database Connected"))



//middlewares
app.use(bodyParser.json())
app.use(cors())

router.route("/").get((req, res) => {
  DiaryEntry.find()
    .then(diaryEntries => res.json(diaryEntries))
    .catch(err => res.status(400).json('Error: ' + err));
  });



const port = process.env.PORT || 5000 //default PORT

app.listen(port, () => {
  console.log(`Server is running on port ${port}`)
})

模式(模型):

const mongoose = require('mongoose')

const diaryEntrySchema = new mongoose.Schema({
  mood: {
    type: Number,
    required: true
  },
  date: {
    type: Date,
    required: false
  },
  entry1: {
    type: String,
    required: false,
    trim: true
  },
  entry2: {
    type: String,
    required: false,
    trim: true
  },
  entry3: {
    type: String,
    required: false,
    trim: true
  }
}, {timestamps: true}
);

const DiaryEntry = mongoose.model('DiaryEntry', diaryEntrySchema);

module.exports = DiaryEntry;

最后,将请求发布到json(获取请求也不起作用):

{
    "mood": 8,
    "entry1": "hey",
    "entry2": "test",
    "entry3": "whats up"
}

2 个答案:

答案 0 :(得分:1)

根据猫鼬docs的`.find()接受一个arg,可以是一个空的obj,以查找集合中的所有条目。

例如:

MyModel.find({}).then(data => do something with data);

答案 1 :(得分:0)

使用此

DiaryEntry.find().exec() .then(diaryEntries => res.json(diaryEntries)) .catch(err => res.status(400).json('Error: ' + err)); });

在猫鼬中找到findfindOne方法后,您应该使用exec()