我正在使用 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
});
});
});