我有一个名为'English'的集合中的JSON数据,我正在使用MongoDB驱动程序设置一个带有nodejs app的REST api.如果我执行以下操作,则会获得浏览器中返回的所有JSON数据.
app.get('/sentences', function (req, res){
db.collection('english', function(err, collection) {
collection.find().toArray(function(err, items) {
res.send(items);
});
});
})
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试/sentences/1
获取一条记录时,应用程序正在冻结(浏览器选项卡中的半月变慢)并且没有记录错误.我怎么做这个findOne有什么问题吗?
app.get('/sentences/:id', function(req,rest){
var query = { 'question' : req.params.id };
console.log(query);
console.log('query');
db.collection('english', function(err, collection) {
collection.findOne(query, function(err, item) {
console.log(err);
res.send(item);
});
});
});
Run Code Online (Sandbox Code Playgroud)
JSON数据
[
{
"_id": "526c0e21977a67d6966dc763",
"question": "1",
"uk": "blah blah blah",
"us": "blah blah balh"
},
{
"_id": "526c0e21977a67d6966dc764",
"question": "2",
"uk": "Tom went outside for a fag. I think he smokes too much!",
"us": "Tom went outside for a cigarette. I think he smokes too much!"
},
{
"_id": "526c0e21977a67d6966dc765",
"question": "3",
"uk": "Do you fancy going to the cinema on Friday?",
"us": "How about going to the movies on Friday"
}
]
Run Code Online (Sandbox Code Playgroud)
更新
发生的事情是应用程序最终超时,我No data received
在浏览器中收到消息.
Muh*_*zad 10
现在已经晚了,但对其他人有帮助.
var id = new require('mongodb').ObjectID('58fcf02b1ab5de07e2a1aecb');//req.params.id
db.collection('users').findOne({'_id':id})
.then(function(doc) {
if(!doc)
throw new Error('No record found.');
console.log(doc);//else case
});
Run Code Online (Sandbox Code Playgroud)
问题是其中一个参数出现拼写错误(“res”中多了一个“t”)。代替
app.get('/sentences/:id', function(req,rest){
...
res.send(item);
Run Code Online (Sandbox Code Playgroud)
本来应该
app.get('/sentences/:id', function(req,res){
...
res.send(item);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29233 次 |
最近记录: |