2016-12-11 3 views
0

Hier sind Fehler in der Konsole angezeigt, kann ich nicht verstehen, warum http-Adresse in meinen controllerjs nicht gefunden wirdAngularJS kippt Daten vom Eingang sendet Server NodeJS, POST nicht gefunden 404

POST http://localhost:3000/api/message 404 (Not Found)    angular.min.js 
XHR finished loading: POST "http://localhost:3000/api/message".  angular.min.js 
Error "Cannot POST /api/message\n"         controllers.js 

:

testControllers.controller('SecCtrl', ['$scope', '$http', 
    function SecCtrl($scope, $http) {  
     $scope.message = ''; 
     $scope.saveInput = function() {    
     $http({ 
      method: 'POST', 
      url: 'http://localhost:3000/api/message', 
      headers: {'Content-Type': 'application/json'}, 
      data: JSON.stringify({message: $scope.message})  
     }). 

     success(function(response) { 
      console.log("Success " + JSON.stringify(response)); 
     }). 

     error(function(response) { 
      console.log("Error " + JSON.stringify(response)); 
     }); 
    }; 
}]); 

server.js Code, und nachdem ich Eingabedaten an den Server senden versuche ich es in mongodb mit Mungo zu speichern:

var express = require('express'); 
var app = express(); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 

var Message = mongoose.model('Message', { 
    message: String 
}); 

mongoose.connect('mongodb://localhost:27017/test', function(err) { 
    if(!err) { 
     console.log('connected to mongo'); 
    } 
}); 

app.use(express.static(__dirname + '/public')); 
app.use(bodyParser.urlencoded({'extended':'true'})); 
app.use(bodyParser.json()); 
app.use(bodyParser.json({type: 'application/vnd.api+json'})); 

app.use(function(res,req,next) { 
    res.header("Access-Control-Allow-Origin"); 
    res.header("Access-Control-Allow-Headers", "Content-Type, Authorization"); 

    next(); 
}) 

app.get('api/message', function(req,res) { 
    Message.find(function(err,message) { 
     if(err) { 
      res.send(err); 
     } else { 
      res.json(message); 
     } 
    }) 
}) 

app.post('api/message', function(req,res) { 
    var message = new Message(req.body); 
    message.save(); 

    res.status(200); 
}) 

app.get('/', function(req,res) { 
    res.sendFile(__dirname + '/index.html'); 
}) 

app.listen(3000); 
console.log('listening on port 3000'); 

Antwort

1

Ich denke, es mit absolutem Pfad /api/message sein soll:

app.post('/api/message', function(req,res) { 
    var message = new Message(req.body); 
    message.save(); 

    res.status(200); 
}); 

Schauen Sie sich hier http://expressjs.com/en/api.html#path-examples

+0

Ich habe versucht, denselben Weg in der Steuerung zu schreiben, aber es verursacht gleichen Fehler – daydreams

+0

Können Sie die Fehler posten? –

+0

sie sind die gleichen, ich habe sie am Anfang des Themas veröffentlicht – daydreams