Domanda

Sto cercando di autenticazione prima di utilizzare Ajax per inserire in un database

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

Ecco il mio codice 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' 
            }
  });
});

^^ questa parte funziona bene. Proviene da un boilerplate, posso andare a localhost e vedere la prima pagina.

Questa parte successiva dovrebbe essere dove l'inserto mongo accade. Questo mi dà una 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);
        });
    });
});

Quello che sto cercando di fare è inserire l'oggetto in stuff TestCollection.

In questo momento mi sto un 404 on / db /

Sono sicuro che questo è molto sbagliato. Non credo che dovrei uso server.on, server.get non funziona neanche. Si prega di comunicare, grazie.

È stato utile?

Soluzione

Devi usare server.post, dal momento che si sta facendo richiesta di una POST tramite jQuery.

server.on aggiungerà un listener di eventi al server, in questo caso per l'evento /db/ inesistente, che non viene mai attivato da qualsiasi cosa.

Si prega di prendere il vostro tempo e fare in modo di leggere il express.js Guida , i Node.js < a href = "http://nodejs.org/api.html" rel = "noreferrer"> Documentazione API potrebbe tornare utile anche.

Altri suggerimenti

Dal momento che sei in attesa di un post, il tuo / db / gestore dovrebbe essere definito in un metodo server.post. Stai diventando un 404 perché il server non dispone di un percorso definito per la combinazione di POST e / db /.

È inoltre dovrebbe essere autenticato il db collegare e non dovrebbe essere la riconnessione al db su ogni richiesta

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(. . .);
    });
  });
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top