2016-04-12 14 views
2
路線

說我在文件中的下列路線並稱,不存在用貓鼬

app.get('/node/:id', function(req, res){ 

}); 

說這個ID無法識別,因此它的路徑尚不存在,如它還不存在於數據庫中。我能做些什麼來爲這個ID生成一個路由並將新的ID存儲在我的數據庫中?

+0

您可以使用findOrCreate-Plugin創建找不到的節點(?):https://github.com/drudge/mongoose-findorcreate。但我認爲你會讓Mongoose和Express混在一起。 –

+0

肯定有某種app.post方法可以用來將該id添加到我的數據庫中? – Django

+0

Express確實有'app.post()'方法,是的。您可以在快速文檔中閱讀它:http://expressjs.com/en/4x/api.html#app.post.method。要使用Mongoose添加一個新對象,可以調用'YourModel.create()'。你有沒有嘗試過任何東西? –

回答

0

您可以使用mongoose-findorcreate來檢查數據庫中是否存在id,如果該對象不存在或創建該對象,或者在找到的對象上執行任何需要的邏輯,則可以使用該邏輯。

您可以使用req.params.id訪問通配符:id

app.get('/node/:id', function(req, res){ 
    Model.findOrCreate({ _id: req.params.id }, function(err, click, created) { 
    // created will be false here 
    console.log('Did not create a new click for "%s"', click.ip); 
    }) 
}); 

mongoose-findorcreate存儲庫中的完整示例。