Ich versuche, ein einfaches Messageboard mit MongoDB, Angular, NODE.js und Express zu erstellen.HTTP GET wird nicht ausgelöst
Aus irgendeinem Grund das erste Mal, wenn ich getMessages() anrufe, geht alles gut. Aber wenn ich nach einem postMessage() getMessages() aufrufen, wird keine GET-Anfrage gesendet.
Das sind meine Routen:
app.get('/api/message', function(req, res) {
Message.find({}).exec(function(err, result) {
res.send(result);
});
});
app.post('/api/message', function(req, res) {
console.log(req.body);
var message = new Message(req.body);
message.save();
res.status(200).send('Message added');
})
Und das ist mein Winkelregler:
(function() {
'use strict';
angular
.module('app')
.controller('MainController', mainController);
function mainController(navigationFactory, $http, $timeout, apiFactory, $scope) {
var that = this; // jshint ignore: line
function init() {
that.getMessages();
}
that.postMessage = function() {
apiFactory.postMessage(that.message).then(function() {
console.log('Posted from controller'); //gets logged
that.getMessages();
});
//that.getMessages(); <-- also tried this
}
that.getMessages = function() {
console.log('Getting from controller'); //gets logged
$http.get('http://localhost:5000/api/message').then(function(result) {
console.log(result.data); //Logs old result, without new message
that.messages = result.data;
console.log('Set data'); //gets logged
});
}
init();
}
})();
Und ich endlich eine Fabrik, um die Nachricht schreiben:
factory.postMessage = function(message) {
return $http.post('http://localhost:5000/api/message', {msg: message});
}
ich schon Ich habe eine ähnliche Frage gestellt, aber da es sich um ein anderes Problem handelt, dachte ich, ich werde es noch einmal fragen.
Warum gibt es keine HTTP-GET-Anfrage, obwohl getMessages() eindeutig in meiner postMessage() - Funktion aufgerufen wird. Ich kann sehen, dass getMessages() mit Hilfe von console.log() aufgerufen wird, aber es scheint zurückzukehren, bevor eine Anfrage gesendet wird.
Erhalten Sie einen Konsolenfehler? –
Keine Fehler, ich kann meine POST-Anfrage auf der Registerkarte Netzwerk mit Status 200 sehen, aber die GET-Anfrage wird nicht gesendet. (nur das erste Mal, wenn die Website gestartet wird) –
Wirst du bitte versuchen, eine Geige zu erstellen? –