Ich benutze Mungo und Rückgabe von Dokumenten aus einer Sammlung mit Datatables angezeigt werden. Ich habe jedoch einige Probleme. Die clientseitige Code istKorrekter Weg von Mongo zu Datentabelle
var table = $('#dataTables-example').DataTable({
"bProcessing" : true,
"bServerSide" : true,
"ajax" : {
"url" : "/mongo/get/datatable",
"dataSrc": ""
},
"columnDefs": [
{
"data": null,
"defaultContent": "<button id='removeProduct'>Remove</button>",
"targets": -1
}
],
"aoColumns" : [
{ "mData" : "name" },
{ "mData" : "price" },
{ "mData" : "category" },
{ "mData" : "description" },
{ "mData" : "image" },
{ "mData" : "promoted" },
{ "mData" : null}
]
});
Dann ist dieser auf der Server-Seite behandelt die folgenden
db.once('open', function callback()
{
debug('Connection has successfully opened');
productSchema = mongoose.Schema({
name: String,
price: String,
category: String,
description: String,
image: String,
promoted: Boolean
});
Product = mongoose.model('Product', productSchema, 'products');
});
exports.getDataForDataTable = function (request, response) {
Product.dataTable(request.query, function (err, data) {
debug(data);
response.send(data);
});
};
Verwendung Wenn ich den obigen Code verwenden, die Datentabelle, die Dokumente angezeigt werden fehlschlägt, behauptet keine Bilder gefunden gefundenABER zeigt es korrekt die Anzahl der Dokumente Zeigt 1 bis 2 von 2 Einträge. Wenn ich den serverseitigen Code zur Antwort mit data.data
anstelle von data
ändere, werden die Dokumente in der Tabelle korrekt ausgefüllt, ABER die Anzahl der Datensätze wird nicht mehr gefunden, stattdessen Zeige 0 bis 0 von 0 Einträge (gefiltert von NaN total Einträge)
exports.getDataForDataTable = function (request, response) {
Product.dataTable(request.query, function (err, data) {
debug(data);
response.send(data.data);
});
die tatsächliche data
zurückgegeben wird, wenn die Abfrage mongo
mongoose.model
{ draw: '1', recordsTotal: 2, recordsFiltered: 2, data: [ { _id: 5515274643e0bf403be58fd1, name: 'camera', price: '2500', category: 'electronics', description: 'lovely', image: 'some image', promoted: true }, { _id: 551541c2e710d65547c6db15, name: 'computer', price: '10000', category: 'electronics', description: 'nice', image: 'iamge', promoted: true } ] }
Ich bin nicht sicher, dass ich folge. Versuchen Sie statt was? Was für eine Auswirkung wird das haben? –
Es ist gestohlen von dem offiziellen Beispiel unter https://github.com/lepazmino/mongoose-datatable-demo/blob/master/mongo.js Ich fühle, dass, wenn Sie Product.dataTable aufrufen, es ist nicht in der Lage zu zugreifen das Produktschema und damit die Formatierung der abgerufenen Daten an den angegebenen bson/json ausstellen. –
Im Allgemeinen ist es besser, wenn Sie Ihre Modelle in einem Modellordner behalten, das Plugin dort initiieren und das Modell exportieren, anstatt das Schema in db.once zu definieren. –