Frage

Ich bin zu beglaubigen versuchen, bevor Ajax in eine Datenbank einzufügen

$('#button').click(function () {       
  $.post('/db/', { 
   stuff: { "foo" : "bar"}
  }, callback, "json");
});

Hier ist mein node.js Code:

server.get('/', function(req,res){
console.log(res);
  res.render('index.ejs', {
    locals : { 
              header: '#Header#'
             ,footer: '#Footer#'
             ,title : 'Page Title'
             ,description: 'Page Description'
             ,author: 'Your Name'
             ,analyticssiteid: 'XXXXXXX' 
            }
  });
});

^^ Dieser Teil funktioniert ok. Es stammt aus einem vorformulierten, kann ich gehen, um die vordere Seite localhost und sehen.

Das nächste Teil soll sein, wo der Mongo Einsatz kommt. Das gibt mir ein 404.

server.on('/db/', function(req,res){
    console.log(req);
    console.log(res);
    var db = new mongo.Db( 'dbname' , new mongo.Server( 'localhost', 20003, {}), {});   
    db.open(function (err) {
        db.collection('testCollection', function (err, collection) {
            collection.insert(res.stuff);
        });
    });
});

Was ich versuche Einsatz des Objekt stuff in Testcollection zu tun ist.

Im Moment bin ich immer ein 404 auf / db /

Ich bin sicher, das ist sehr falsch. Ich glaube nicht, ich bin zu verwenden server.on soll, wird server.get auch nicht. Bitte beraten, danke.

War es hilfreich?

Lösung

Sie haben server.post zu verwenden, da Sie tun eine POST Anfrage über jQuery.

server.on wird einen Ereignis-Listener zum Server hinzuzufügen, in diesem Fall für das nicht vorhandene /db/ Ereignis, das nie durch etwas ausgelöst wird.

Bitte nehmen Sie sich Zeit und stellen Sie sicher, die Express.js Führer zu lesen, die Node.js < a href = "http://nodejs.org/api.html" rel = "noreferrer"> API-Dokumentation auch nützlich sein könnte.

Andere Tipps

Da Sie einen Beitrag erwarten, aktualisieren Sie Ihr / db / Handler sollte in einer server.post Methode definiert werden. Sie bekommen ein 404, da der Server nicht eine Route für die Kombination von POST und / db /.

Sie sollten auch die db verbinden werden die Authentifizierung und sollte nicht auf jede Anfrage

an die DB werden wieder anschließen
var db = new mongo.Db( 'dbname' , new mongo.Server( 'localhost', 20003, {}), {});
db.authenticate(user, password, function({ // callback }));

server.post('/db/', function(req,res){
  db.open(function (err) {
    db.collection('testCollection', function (err, collection) {
      collection.insert(. . .);
    });
  });
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top