ugrás a tartalomhoz

Node.Js & MongoDB segítség

gabesz666 · 2011. Már. 20. (V), 13.25
Sziasztok!

Elkezdtem foglalkozni a címben említett technológiákkal, a Node.JS-t és MongoDB-t külön-külön sikerült belőnöm (node.js példaalkalmazások lefuttatva, mongodb kliensben is dolgoztam már egy keveset). A problémám, hogy teljesen kezdő vagyok a témában és nem tudok honnan elindulni, mert például a mongodb node.js moduljainak oldalán található példakódok nekem konkrétan elszállnak mindenféle hibával, a dokumentációk nagy része pedig számomra egyenlőre zavaros (ha belejövök biztos sokkal egyértelműbb lesz). A kérdéseim a következők:

  • Melyik MongoDB modult ajánljátok a Node.JS-hez? (a modul oldalon jelenleg 3 van, illetve találtam egy Mongoose elnevezésű frameworkot (?), ezzel kapcsolatban van tapasztalatotok?)
  • A node-mongodb modul egyes fejlesztők szerint lassú, ti tapasztaltátok ezt?
  • Tudnátok ajánlani valami korrekt tutorial-t a kezdetekhez és/vagy itt leírni egy nagyon egyszerű példakódot (amiben van insert, update, find, remove), ami lefut?

Köszönöm a segítséget!
 
1

mongodb + mongolia

Poetro · 2011. Már. 20. (V), 16.37
Nekem a mongodb + mongolia páros tetszik (lehet, csak azért mert szeretem masylum kódját). Egyszerűen telepíthető:
$ npm install mongodb mongolia
És egy kis példaprogram:
var MongoDb = require('mongodb/lib/mongodb/db').Db,
    MongoServer = require('mongodb/lib/mongodb/connection').Server,
    Model = require('mongolia').model,
    db = new MongoDb(
      'blog', 
      new MongoServer('127.0.0.1', 27017, 
        { auto_reconnect: true, native_parser: true}
      )
    ),
    User = function (db) {
      var user = Model(db, 'users');
      user.validate = function (user, data, callback) {
        callback(null, {hasErrors: function () { return false; }});
      };
      return user;
    }(db);

function generateNum(max, min) {
  min = min || 0;
  max -= min;
  return Math.floor(Math.random() * max) + min;
}

function generateString(length) {
  var output = [], i;
  for (i = length; i > 0; i -= 1) {
    output[output.length] = generateNum(120, 32);
  }
  return String.fromCharCode.apply(String, output);
}

db.open(function (err, db) {
  User.onCreate = function (element) {
    element.foo = generateString(10);
  };

  User.afterCreate = function (element) {
    element._id = generateString(12);
  };

  User.createInstance({name: generateString(10)}, function (err, element) {
    console.log('err:', err, ' elem:', element);
  });
  User.createInstance({name: generateString(10)}, function (err, element) {
    console.log('err:', err, ' elem:', element);
  });
});
Nemrég volt egy cikk a How To Node oldalon ezzel kapcsolatban. A Node.js témában egyébként még hasznos olvasmány a DailyJS ahol szintén volt egy igencsak hasznos példa alkalmazás.
2

Köszi

gabesz666 · 2011. Már. 21. (H), 11.51
Köszönöm a linkeket és a példakódot. Kezd összeállni a kép lassanként (tegnap már sikerült meggyártani egy adatbázisba szervízen keresztül beszúrós és lekérdezős app-ot :)). Ha jobban belejövök a témába, akkor összehozok egy cikket a témában. (ha van rá érdeklődés)