2017-07-17 71 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

这正是我所期待的,谢谢。我正在尝试一堆东西,看起来我没有使用正确的查询,谢谢 –