2017-11-15 10 views
2

に特定のオブジェクトの配列に投稿助けが必要は、私がエラーを持っているマングース

POSTできません/ API /ダンス/ 5a0c6f69b31b2f85c57de5bb /イベント

ここ

は私のスキーマです

const EventSchema = new Schema({ 
title: String, 
date: Date, 
description: String, 
eventURL: String, 
facebookURL: String 
}) 
const DanceSchema = new Schema({ 
name: String, 
events: [EventSchema] 
}) 

イベントコントローラは次のようになります。

const express = require("express"); 
const Event = require("../models/event"); 
const Dance = require("../models/dance"); 

const router = express.Router(); 

router.get("/", (req, res) => { 
Event.find().then((events) => { 
res.json(events); 
}); 
}); 

router.get("/:id", (req, res) => { 
console.log(req.params.id) 
Event.findById(req.params.id).then((event) => { 
res.json(event); 
}); 
}); 

router.post("/", (req, res) => { 
const danceId = req.params.danceId; 
const eventId = req.params.eventId; 
const newEventInfo = req.body.events; 

    Dance.findById(danceId).then((dance) => { 
    const foundDance = dance.find((dance) => { 
    return dance.id === danceId 
    }) 
    const newEvent = new Event(newEventInfo); 
    foundDance.events.push(newEvent); 
    console.log(newEvent) 
    return dance.save(); 
    }).then((dance) => { 
    res.json(dance); 
    }).catch(err => console.log(err)); 
    }) 

module.exports = router; 

は、そして、これは私が間違っているつもりな情報

handleSubmit = (e) => { 
    e.preventDefault(); 
    const payload = this.state; 
    const danceId = this.props.match.params.danceId 
    axios.post(`/api/dance/${danceId}/events`, payload).then((res) => { 
    this.setState({"redirect": true}); 
    }).catch(err => console.log("fail")); 
}; 

を送ってる方法ですか?それ以上の情報が必要なら私に知らせてください。私の最初の投稿:)

+0

あなたがメソッドを投稿する必要があります: 'router.post( "/ API /ダンス/:danceId /イベント"、(REQ、RES)=> { ...} ' – YouneL

+0

私はPOSTのハンドラが表示されません'/api/dance /:danceId/events'バックエンドで – dhilt

+0

私はそれをrrouter.post( "/ api/dance /:danceId/events" "、(req、res)=> {...}でも、私はまだ同じエラーが出ているよ。 – mwlai

答えて

0

/api/dance/5a0c6f69b31b2f85c57de5bb/eventsでPOSTリクエストに応答するコントローラに定義されたルートはありません。私はあなたのコントローラに次のように見ることが期待される:

router.post('/api/dance/:danceId/events', (req, res)=> {})

関連する問題