Ich habe mit node.js seit Monaten entwickelt, aber jetzt fange ich ein neues Projekt an und ich würde gerne wissen, wie man die App strukturiert.Struktur für Komponententests auf node.js mit Mungo
Mein Problem kommt, wenn ich über Komponententests spreche. Ich werde nodeunit verwenden, um Komponententests zu schreiben.
Auch ich benutze Express, um meine REST-Routen zu definieren.
Ich dachte darüber nach, meinen Code zu schreiben, der auf Datenbanken in zwei "separaten" Dateien zugreift (Sie werden natürlich mehr sein, aber ich versuche nur, den Code zu vereinfachen). Es wird den Routencode geben.
var mongoose = require('mongoose')
, itemsService = require('./../../lib/services/items-service');
// GET '/items'
exports.list = function(req, res) {
itemsService.findAll({
start: req.query.start,
size: req.query.size,
cb: function(offers) {
res.json(offers);
}
});
};
Und, wie ich dort verwende, ein Element-Service nur für den Zugriff auf die Datenebene verwendet. Ich tue das, um nur die Datenzugriffsebene beim Komponententest zu testen. Es wird so etwas wie diese:
var mongoose = require('mongoose')
, Item = require('./../mongoose-models').Item;
exports.findAll = function(options) {
var query = Offer
.find({});
if (options.start && options.size) {
query
.limit(size)
.skip(start)
}
query.exec(function(err, offers) {
if (!err) {
options.cb(offers);
}
})
};
So kann ich mit Unit-Tests prüfen, ob es korrekt funktioniert und ich kann diesen Code verwenden überall ich will. Das einzige, was ich nicht sicher bin, ob es richtig gemacht wurde, ist die Art, wie ich eine Callback-Funktion übergebe, um den zurückgegebenen Wert zu verwenden.
Was denkst du?
Danke!
Sie wollen mit Mongo mit Mongodb verbinden: /// –
binarygiant
Das Beispiel aktualisiert. – rounce