2017-07-17 27 views
0

我試圖將使用快速路由的URL映射到數據庫中每個文檔中的特定值。如何爲每個MongoDB文檔創建URL

例如。在Schema中,company.name將返回公司名稱。

有沒有辦法將company.name的值設置爲唯一的URL?

我認爲這是創建一個循環或使用貓鼬的.find通過數據庫進行迭代,並將其設置爲

app.get('/' + name , function (req , res) { 
    res.render('company.jade'); 
}); 

但是我不知道如何從訪問數據庫收集的唯一途徑路線文件。

使用

const Company = require('.models/company'); 

不返回數據庫所以不知道該怎麼做。

我對Mongoose或node.js還不是很熟悉。真的只需要做這件事,其餘的應用程序完成我更熟悉的角度。

希望我在這裏有所瞭解。我確實有應用程序代碼,但它是來自app.js和routes.js的所有基本代碼。如果它有幫助,我可以添加它。

+0

你能告訴我你的MongoDB文檔爲例,並清楚你想做什麼? –

+0

是的,我必須縮短它的評論,但本質上{公司{'名稱':微軟}},{公司{'名稱':蘋果}},我想爲每個生成url /微軟/蘋果等。對不起,如果還不清楚 –

+0

這種事情通常應該用GET或POST請求來完成。不知道你的服務器設置的方式,但這有點難以回答。 – DavidBittner

回答

1

您正在尋找貓鼬findOnequery

const Company = require('.models/company'); 

app.get('/:name', function(req, res){ 
Company.findOne({'company.name': req.params.name}) //company.name depends upon the schema you set. 
.then(function(company){ 
    if (company) 
    return res.send({success: true, data: company}); //return company as an object containing the queried company document. 

    else 
    return res.send({success: false, error: 'Company not found'}); 

}) 
.catch(function(err){ 
    if (err) res.send({success: false, error: err}); 
}); 
}); 
+0

這正是我所期待的,謝謝。我正在嘗試一堆東西,看起來我沒有使用正確的查詢,謝謝 –

相關問題