Я хочу иметь возможность добавить идентификатор для лайка в отчет.
Это мой маршрут лайка, как / добавить, это рассматриваемый маршрут:
const express = require('express')
const likeRoutes = express.Router()
let Like = require('../models/Like')
let Report = require('../models/Report')
likeRoutes.route('/').get(function(req, res) {
Like.find(function(err, like) {
if (err) {
console.log(err)
} else {
res.json(like)
}
})
})
likeRoutes.route('/:id').get(async (req, res) => {
console.log(req.params.id)
let id = req.params.id
Like.findById(id, function(err, like){
res.json(like)
})
})
likeRoutes.route('/add').post(function(req, res){
let like = new Like({
value: req.body.value,
_report: req.body._report
})
like.save((err, doc) => {
if (err)
res.send(err)
console.log(req.body._report)
Report.findOneAndUpdate(req.body._report,
{ $push: { like: doc._id} },
{ new: true , useFindAndModify: false},
(err, post) => {
if (err)
res.send(err)
res.json({doc})
}
)
})
})
likeRoutes.route('/update/:id').post(function(req, res){
Like.findById(req.params.id, function(err, like) {
if (!like)
res.status(404).send('data is not found')
else
like.title = req.body.title
like.desc = req.body.desc
like.markdown = req.body.markdown
like.save().then(like => {
res.json('Like updated!!!')
})
.catch(err => {
res.status(400).send('Update didnt work')
})
})
})
module.exports = likeRoutes
Этомоя модель отчета:
const mongoose = require('mongoose')
const Schema = mongoose.Schema
let Report = new Schema({
title: {
type: String
},
summary: {
type: String
},
analysis: {
type: String
},
source_title: {
type: String
},
source_link: {
type: String
},
author: {
type: String
},
like: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Like'
},
player: {
type: mongoose.Schema.Types.ObjectId,
required: true,
ref: 'Player'
}
}, { timestamps: true })
module.exports = mongoose.model('Report', Report)
Это моя модель:
const mongoose = require('mongoose')
const Schema = mongoose.Schema
let Like = new Schema({
value: {
type: Number
},
_report: {
type: String,
ref: 'Report'
}
}, { timestamps: true })
module.exports = mongoose.model('Like', Like)
Когда я пытаюсь добавить подобное в почтальоне, оно может быть создано.
Тем не менее, когда я просматриваю отчет по конкретным отметкам, подобного нет.
Я предполагаю, что это проблема с настройкой моей модели или маршрута.
Когда я console.log req.body._report, правильное значение приходит.