Ajax-Post node.js auszudrücken app?
-
11-10-2019 - |
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.
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ßenvar 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(. . .);
});
});
});