Question

Je suis en train de Authentifier avant d'utiliser ajax à insérer dans une base de données

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

Voici mon code Node.js:

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' 
            }
  });
});

^^ cette partie fonctionne bien. Il vient d'un passe-partout, je peux aller à localhost et voir la première page.

La partie suivante est censée être là où l'insert mongo arrive. Cela me donne une erreur 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);
        });
    });
});

Ce que je suis en train de faire est d'insérer le stuff objet en testCollection.

En ce moment je suis obtenir un 404 sur / db /

Je suis sûr que cela est très mauvais. Je ne pense pas que je suis censé utiliser server.on, server.get ne fonctionne pas non plus. S'il vous plaît conseiller, merci.

Était-ce utile?

La solution

Vous devez utiliser server.post, puisque vous faites la demande d'un POST via jQuery.

server.on ajoutera un écouteur d'événement au serveur, dans ce cas pour l'événement /db/ inexistant, qui ne se déclenche par quoi que ce soit.

S'il vous plaît prenez votre temps et assurez-vous de lire le express.js Guide , les Node.js < a href = "http://nodejs.org/api.html" rel = "noreferrer"> API Docs pourrait être utile aussi.

Autres conseils

Puisque vous vous attendez à un poste, votre / db / gestionnaire doit être défini dans une méthode de server.post. Vous obtenez un 404 parce que le serveur ne dispose pas d'un itinéraire défini pour la combinaison de POST et / db /.

vous devriez aussi être authentifiez db connecter et ne doit pas être reconnecter à la db sur chaque requête

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(. . .);
    });
  });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top