0

我正在使用 Express.js 和 Mongodb 开发 Node.js 应用程序,但在让它与我合作时遇到了一些麻烦。该应用程序本质上是一个包含其成分的食谱列表。当我启动应用程序时它工作正常。我可以单击查看食谱,它会显示正确的食谱,但第二次我创建了一个新食谱,它似乎“卡住”了,我看到的唯一食谱就是新创建的食谱。但它在顶部显示了正确食谱的标题。这真的让我很困惑。

如果这有帮助,这是正在发生的事情的屏幕截图。这就是我创建本尼迪克蛋食谱并单击已经存在的“辣椒”食谱时发生的情况:

问题

这是我的代码:

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

recipeprovider.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)
    });
  }
});

};

应用程序.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
    });
});
});
4

0 回答 0