尝试返回新闻的所有“标题”。它没有返回任何前端。有什么问题?
var table = [];
router.get('/api/v1/news', function (req, res) {
var title = req.params.title;
News.find({title: title}).toArray(function (err, news) {
if (err) {
res.send('error');
} else if (news.length > 0){
//table.push(news);
News.on('row', function (row) {
table.push(row);
});
// After all data is returned, close connection and return results
News.on('end', function () {
done();
return res.json(table);
});
}
});
});
更新
好的,它不会返回任何值。这就是它在数据库中的样子:
{
"_id": {
"$oid": "592142b13257303488922eb2"
},
"date": "21-05-2017",
"text": "noniin",
"title": "moi",
"__v": 0
},
{
"_id": {
"$oid": "59217776697b07245cc7d87f"
},
"date": "21-05-2017",
"text": "hgggg",
"title": "thghfg",
"__v": 0
}
收藏名称是新闻。我可以在不指定查询“标题”的情况下获取所有数据,但是没有指定任何内容。
我理解req.params错了吗?新闻采集 - >从集合内部找到所有“标题”并将其返回查看。
答案 0 :(得分:3)
我认为你将req.params
与req.query
混为一谈。
如果您的请求网址格式为 -
http://host/api/v1/news?title=something
然后req.query.title
将提供title的值。
否则,如果是形式 -
http://host/api/v1/news/:title
然后req.params.title
将提供title的值。
答案 1 :(得分:0)
尝试使用以下解决方案并在body中传递参数
router.get('/api/v1/news', function (req, res) {
var title = req.body.title;
return News.find({title : title},function (err, title) {
if (!err) {
return res.json({ status: 200, message: "success", data: title});
}
else {
return res.json({ status: 500, message: "failure" });
}
});
});
答案 2 :(得分:0)
您应该将 / api / v1 / news 更改为 / api / v1 / news /:title
corpus = [
{'text': 'what is chat service?', 'category': 'what_is_chat_service'},
{'text': 'what is the benefit of using chat service?', 'category': 'why_use_chat_service'}
]