2017-06-05 4 views
0

私はexpressとmongodbを使って簡単なCRUDアプリケーションを構築しようとしています。すべてのデータベースエントリに対する私のGET要求が機能していて、私のPOSTリクエストが機能していますが、私のGETリクエストで個々のエントリの問題を理解できないようです。特定のIDがnullを返すGETリクエスト

Server.jsが要求GET:私は 'URL/API/593555074696601afa192d7f' を入力すると、私が知っているIDである

app.get('/api/:id', function (req, res) { 
    var id = req.params.id; 

    db.collection('api').findOne({_id: id}, (err, result) => { 
    if (err){ 
     res.sendStatus(404); 
     return console.log(err); 
    } 
    res.redirect('/'); 
    return console.log(result); 

    }); 

}); 

がにconsole.logはnullを返している存在、私は」かどうかわからないんだけど何か間違っているの?

+0

デバッグモードをオンにして、正確なクエリを確認してください。 MongoDBドライバをノードに直接使用しているようです。 http://mongodb.github.io/node-mongodb-native/2.0/tutorials/logging/#setting-log-level:3f3af53408cff75953b33723c0b061bb – Anand

+0

ありがとう、出力は少なくとも1000行ですが、特に私が探しているものは何ですか? – Matt

+0

[node.js mongodb select document from \ _id node-mongodb-native]の可能な複製(https://stackoverflow.com/questions/4902569/node-js-mongodb-select-document-by-id-node-mongodb) - ネイティブ) – Veeram

答えて

1

ObjectIDインスタンスをクエリに渡す必要があります。

let ObjectID = require("mongodb").ObjectID; 

app.get('/api/:id', function (req, res) { 
    var id = req.params.id; 

    db.collection('api').findOne({_id: ObjectID(id)}, (err, result) => { 
    if (err){ 
     res.sendStatus(404); 
     return console.log(err); 
    } 
    res.redirect('/'); 
    return console.log(result); 

    }); 

}); 

Mongooseを試してください。あなたのモデルが複雑になるなら、助けになるかもしれません。

+0

素晴らしい、うまくいって、ありがとう!私はマングースを手伝ったことがありますが、最初に基盤技術をより深く理解したかったので、マングースのようなものを紹介し始めます。どれくらい助けてくれるのか分かります。 – Matt

関連する問題