2016-09-12 2 views
0

server.jsне может получить/API/addmasterlist на 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"); 

мой апи/addmasterlist не работает, и это дает мне не может получить/API/addmasterlist ошибку в браузере с помощью приложения. попасть в основной список, похоже, хорошо работает и задуматься о базе данных, проблема в том, что это не сработает на моем angular.js

okay using app.get, похоже, работает, но кто-нибудь может мне помочь, это правильный способ проталкивания nodejs? с использованием углового

$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 = ""; 

} 

ответ

1

Проблема в том, что вы объявили о своей /api/addmasterlist конечной точке как запрос POST. Попробуйте изменить его на GET, и он может работать так, как вы ожидали.

Изменить это:

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

Для этого:

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

В качестве альтернативы, вы можете изменить ваш Угловое за HTTP от добраться до пост:

Изменить:

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

до

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

как я уже говорил app.get, кажется, работает, но моя проблема я не могу показаться, чтобы сделать мое приложение для передачи данных к узлу это мой код на угловом отредактированном * пожалуйста постгарантийном спасибо –

+0

Теперь я верю, что вы используете попадайте в угловой, а не в пост. Я отредактировал мой ответ, проверьте его –

+0

попробовал это также, и он дает мне это angular.js: 12011 POST http: // localhost: 8080/api/addmasterlist 400 (Bad Request) –

Смежные вопросы