私は Express.js と Mongodb を使用して Node.js アプリに取り組んでいますが、それを私と連携させるのに問題があります。このアプリは基本的に、材料を含むレシピのリストです。アプリを起動すると正常に動作します。クリックしてレシピを表示すると、正しいレシピが表示されますが、2 番目に新しいレシピを作成すると、「動かなくなった」ように見え、新しく作成されたレシピしか表示されません。しかし、一番上に正しいレシピのタイトルが表示されます。これは本当に私を混乱させます。
それがまったく役立つ場合に何が起こっているかのスクリーンショットを次に示します。エッグ ベネディクト レシピを作成し、既存の「チリ」レシピをクリックすると、次のようになります。
これが私のコードです:
Recipe_show.jade
h1= title
div.recipe
div.name= recipe.name
- each ingredient in recipe.ingredients
div.ingredient
div.amount= ingredient.amount
div.measurement= ingredient.measurement
div.type= ingredient.type
レシピプロバイダー.js
//find an recipe by ID
RecipeProvider.prototype.findById = function(id, callback) {
this.getCollection(function(error, recipe_collection) {
if( error ) callback(error)
else {
recipe_collection.findOne({_id: recipe_collection.db.bson_serializer.ObjectID.createFromHexString(id)},
function(error, result) {
if( error ) callback(error)
else callback(null, result)
});
}
});
};
app.js
// show individual recipes
app.get('/recipe/:id', function(req, res) {
recipeProvider.findById(req.params.id, function(error, recipe) {
res.render('recipe_show.jade', {
title: recipe.name,
recipe: recipe
});
});
});