2016-09-12 2 views
0

server.jsKann nicht GET/api/addmasterlist auf app.post

var express   = require('express'); 
var mysql   = require('mysql'); 
var app    = express();     
var morgan   = require('morgan');   
var bodyParser  = require('body-parser');  
var methodOverride = require("method-override"); 
var request   = require("request"); 

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

var pool  = mysql.createPool({ 
    connectionLimit : 100, //important 
    host  : 'localhost', 
    port  : 3306, 
    user  : 'root', 
    password : 'xxxxxxx', 
    database : 'masterlist', 
    debug : false 
}); 




//Rest APIs 
app.get('/api/fetchmasterlist', function(req, res){ 
    pool.getConnection(function(err, connection){ 

     if(!err){ 

      //Query 
      var strquery = "SELECT * FROM students"; 
      connection.query(strquery, function(err, rows){ 
       if(err){ 
        res.json("Error in Query." + err); 
       }else{ 
        res.json(rows); 
       } 
      }); 


     }else { 

      //Return an Error 
      connection.release(); 
      connection.destroy(); 
      res.json("Error geting connection from DATABASE."); 
      return; 
     } 

    }); 

}); 
app.post('/api/addmasterlist', function(req, res){ 
    pool.getConnection(function(err, connection){ 

     if(!err){ 

      //Query 
      /*var post = req.body.param;*/ 
      var strquery = "INSERT INTO students(id, studentid, studentname, course, year) VALUES (?, ?, ?, ?, ?)"; 
      connection.query(strquery, [req.body.id, req.body.studentid, req.body.studentname, req.body.course, req.body.year], function(err, rows){ 
       if(err){ 
        res.json("Error in Query." + err); 
       }else{ 
        res.json("Success in inserting the new student." + rows); 
       } 
      }); 


     }else { 

      //Return an Error 
      /*connection.release(); 
      connection.destroy();*/ 
      res.json("Error geting connection from DATABASE."); 
      return; 
     } 

    }); 

}); 


// application route 
app.get('*', function(req, res){ 
    res.sendfile('./public/index.html') // load the single static file 
}); 



// listen 
app.listen(8080); 
console.log("App listening on port 8080"); 

meine api/addmasterlist nicht funktioniert und es gibt mir Kann nicht GET/api/addmasterlist Fehler im Browser App. Holen Sie sich auf der Masterliste scheint gut zu funktionieren und über die Datenbank das Problem zu reflektieren ist es wird nicht funktionieren auf meinem angular.js

okay mit app.get scheint zu arbeiten, aber kann mir jemand helfen, ist dies die richtige Art und Weise durchzudrücken Knotenjs? Winkel mit

$scope.saveNewStudent = function(){ 
    var dataa = $scope.studentmasterlist.push({ 
     id: ($scope.studentmasterlist.length + 1), 
     studentid: $scope.studentid, 
     studentname: $scope.studentname, 
     course: $scope.course, 
     year: $scope.year, 

    }); 

$http.get('/api/addmasterlist', dataa).success(function(data, status) { 
    console.log('Data posted successfully'); 
    }) 
    //Clear the scope 
    $scope.studentid = ""; 
    $scope.studentname = ""; 
    $scope.course = ""; 
    $scope.year = ""; 

} 

Antwort

1

Das Problem ist, dass Sie Ihren /api/addmasterlist Endpunkt als POST-Anfrage erklärt. Versuchen Sie es in GET zu ändern und es könnte wie erwartet funktionieren.

ändern diese:

app.post('/api/addmasterlist', function(req, res){ 

Um dies:

app.get('/api/addmasterlist', function(req, res){ 

Alternativ können Sie Ihre Winkel des http erhalten ändern von zu Post:

Wechsel:

$http.get('/api/addmasterlist', dataa).success(function(data, status) { 

bis

$http.post('/api/addmasterlist', dataa).success(function(data, status) { 
+0

wie ich bereits erwähnt app.get scheint zu funktionieren, aber mein Problem ist, ich kann nicht scheinen, um meine app zu machen, Daten senden diese an den Knoten ist mein Code auf Winkel bearbeitet * Bitte überprüfen post dank –

+0

Jetzt glaube ich Sie verwenden in eckig statt post bekommen. Ich habe meine Antwort bearbeitet, überprüfe sie –

+0

versuchte es auch und es gibt mir diese angular.js: 12011 POST http: // localhost: 8080/api/addmasterlist 400 (schlechte Anfrage) –