私はソーシャルネットワーキングプロジェクトに取り組んでいます。イメージをアップロードする機能とDBからイメージオブジェクトを返すことができるAPIルートを追加して、それらを表示できるようにしました。これはうまくいきました。それから数日はかかりました(新しいゲームが出てきました)。だからここparamを使用した高速ルートが矛盾しています。それは私のコードですか?
はルートです:
router.get("/image/all/:id", function(req, res, next) {
console.log("Triggered: Images/all/ID");
Image.find({owner_id: req.params.id}).populate("comments").exec(function(err, images) {
if(err) {
req.flash('error', err.toString());
return next();
} else {
console.log("images API trigger");
res.json(images);
return next();
}
});
});
そしてここでは、AJAX呼び出しです:
$.ajax({url: "/image/all/" + uid, success: function(data) {
for(let i = 0; i < data.length; i++){
let img = "<a class='aPic' href='#' data-toggle='modal' data-target='.view-image-modal' data-id='" + data[i]._id + "'> <img src='" + data[i].thumb + "' class='thumbnail pull-left'></a>";
$('#proBox').append(img);
imageData.push(data[i]);
}
$('.view-image-modal').on('show.bs.modal', function(e) {
var button = $(e.relatedTarget);
var id = button.data('id');
var image;
for(let i = 0; i < imageData.length; i++) {
console.log(imageData[i]._id + " | " + id);
let imId = imageData[i]._id.toString();
if(imId == id){
image = imageData[i];
console.log("Found: " + imageData[i].file);
}
}
let splt = image.file.split(".");
let ext = "." + splt[splt.length - 1];
$('.modal-content img').attr('src', "/images/uploads/" + id + ext);
$('.modal-title').html("Uploaded: " + moment(image.created).format("MM/DD/YYYY"));
$('#imgDesc').val(image.description);
$('#imgEdit-button').attr('data-id', id);
$('#imgDelete-button').attr('data-id', id);
//Update comments section
});
}});
だから私はこのURLを取得:http://127.0.0.1:8080/image/all/5989da1afdc58624a0b10fda
コンソールがエラー404を与え、私はアドレスバーにこれを置けば、私は、私はIDからの手紙を追加または削除する場合は、「...取得することはできません」を取得それは想定されているように配列を返します。
シークレットウィンドウでこれを試して、キャッシュされたファイルの問題などがないことを確認しました。何か案は?
req.flashがどのように機能するのかはわかりませんが、エラーが発生した場合は、次に電話します。私はあなたがそうし、エラーハンドラを持っていないと思う場合、404を取得します。エラーの場合、 'return next()'の代わりに 'res.json(err)'を返してみてください。なぜそれが失敗しているのか。たぶん_idがひどく形成されていて、マングースがそれを拒絶しているのかもしれません。 –
GENIUS !!!ありがとう、私はそれがそのように設定していたことを忘れていた。私は人口( "コメント")を追加し、それのためのマングースモデルを呼び出さなかったことを忘れた。 – BackWoodsCoder
あなたが答えとしてそれを提出すれば、私はそれを正しいとマークし、感謝します。 – BackWoodsCoder