Node/Express APIに投稿しているReactアプリがあります。投稿は正常ですが、今は削除されています。なぜreq.paramsがタイトル文字列値の一部だけを返すのか理解できません。これは私が気づいていない基本的なもののように思えるので、ばかげた質問であれば私には簡単に行きます。ここでreq.paramsは値の一部を返します
が正常に動作します私の記事、次のとおりです。
[
{
"_id": "586d94bf3175695e48f24fbd",
"rating": "5/5",
"year": "1981",
"genre": "Thriller",
"title": "The Godfather",
"__v": 0,
"actors": [
"[Robert DeNiro, Al Pacino]"
]
},
]
お知らせタイトル文字列は "ゴッドファーザー" である:ここでは
router.route('/movies')
.post(function(req,res) {
var movie = new Movie();
movie.title = req.body.title;
movie.genre = req.body.genre;
movie.actors = req.body.actors;
movie.year = req.body.year;
movie.rating = req.body.rating;
movie._id = new Date().getTime();
//save the movie and checkfor errors
movie.save(function(err) {
if (err) {
res.send(err);
} else {
res.json({message: "Movie created!"});
}
});
})
は、POST後のGETの郵便配達の結果です。さて、ここで私のDELETEです:
.delete(function(req,res) {
console.log('Title: ', req.params)
var query = {title: req.params.title};
Movie.findOneAndRemove(query, function(err, movie) {
if (err) res.send(err);
if(!movie) {
res.json({message: "No Movie found with that title"});
} else {
res.json({message: "Successfully deleted Movie"});
}
});
});
あなたのようにログに記録され、そこに私はconsole.logが表示されます。
Title: { title: ' Godfather' }
私はJSON.stringifyにparam.titleのなどを試してみましたが、私は私だと思いますここで間違ったことをやっているだけで、私が同じコードを見つめたほど私は逃げ出しています。ここで
EDIT
はPOSTを行うクライアントコードです。 DELETEルートは、次のURLを使用して郵便番号でテストしています。
http://localhost:8080/api/movies/:The Godfather
handleSubmit() {
let movie = {
title: this.title.value,
genre: this.genre.value,
year: this.year.value,
actors: this.actors.value.split(','),
rating: this.rating.value
}
$.post("http://localhost:8080/api/movies", movie);
これが何かを持っているかどうかはわかりませんが、なぜあなたのアクターを配列内の配列としてストリング化するのですか?手元にある問題とは何の関係もないでしょう。要求を出しているクライアントコードを投稿できますか? – LostJon
Iveが投稿を編集しました。俳優の場合は、1つのテキストフィールドから文字列として入力します。 – jmcgui05
はあなたの情報がreq.body ... req.paramsではないはずです。私はその1日後半の遅れかもしれません – LostJon