2017-11-22 8 views
0

Kann Eigenschaft 'title' von null nicht lesen !!! Zeigt, während die findone.ejs Datei rendring .. aber der erste in db zeigt perfekt ..Node && Mongodb findOne funktioniert nicht

app.get('/books/:title', (req, res) => { 
    db.collection("Book") 
    .findOne({ 'title': req.params.title }, function(err, result) { 
     if (err) throw err; 

     res.render('findone.ejs', { Book: result}); 
    }); 
}) 

Datenbank-Schema: var Mungo = require ('Mungo'); var Schema = mongoose.Schema;

var BookSchema = new Schema({ 
    title: String, 
    author: String, 
    category: String 
}); 

module.exports = mongoose.model('Book', BookSchema); 

Mongo-Datenbank.

{ 
    "_id": { 
     "$oid": "5a14a5edf6fe123247b890f3" 
    }, 
    "title": "ttt", 
    "author": "ttttt", 
    "category": "tttttttttttt" 
} 

{ 
    "_id": { 
     "$oid": "5a14a5f2f6fe123247b890f4" 
    }, 
    "title": "tttt", 
    "author": "ttttt", 
    "category": "ttttttttttttttttttttttttttt" 
} 

{ 
    "_id": { 
     "$oid": "5a154e4bff45fe2c9035f9da" 
    }, 
    "title": "hello ", 
    "author": "rabbani", 
    "category": "how are you" 
} 
+0

Dann bedeutet dies, dass die Abfrage keine Dokumente oder keine Dokumente in der Sammlung mit diesem bestimmten Titel übereinstimmt. Wenn Sie 'req.params.title' vor der Abfrage protokollieren, was bekommen Sie? – chridam

+0

zeigt es den Titel, den ich vergleichen möchte &&, dass ich auf dem Link gebe. Der erste Wert der Datenbank wird ohne Fehler angezeigt. –

+0

Können Sie Ihren Modellcode '' Book 'hinzufügen – akinjide

Antwort

-1

Wenn Sie mit Mungo dann können Sie das Schema wie diese

Book = mongoose.model('Book') 

und Abfrage wie diese

Book.findOne({"title": title}, function(err, book) { 
    //handle book 
}) 

Natürlich können Sie sicherstellen müssen importieren, dass der Titel einzigartig ist.

+0

@rabbani Kommentar war 'Kann Eigenschaft 'Titel' von null nicht lesen !!!' Ich bin sicher, er importiert das Modell – akinjide

+1

Bedeutet das nicht 'req.params' ist null? –