Node.js 无法在app.post上获取/api/addmasterlist
server.jsNode.js 无法在app.post上获取/api/addmasterlist,node.js,express,Node.js,Express,server.js var express = require('express'); var mysql = require('mysql'); var app = express(); var morgan = require('morgan'); var bodyParser = require('body-parser'); var m
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");
我的api/addmasterlist不起作用,它给了我
无法获取/api/addmasterlist
浏览器上出现错误
在主列表中使用app.get似乎可以很好地工作,并反映在数据库中问题是它在我的angular.js上不起作用
好的,使用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 = "";
}
问题是您将
/api/addmasterlist
端点声明为POST请求。尝试更改它以获得,它可能会按照您的预期工作
更改此项:
app.post('/api/addmasterlist', function(req, res){
为此:
app.get('/api/addmasterlist', function(req, res){
或者,您可以将angular的http从get更改为post:
更改:
$http.get('/api/addmasterlist', dataa).success(function(data, status) {
到
问题是您将
/api/addmasterlist
端点声明为POST请求。尝试更改它以获得,它可能会按照您的预期工作
更改此项:
app.post('/api/addmasterlist', function(req, res){
为此:
app.get('/api/addmasterlist', function(req, res){
或者,您可以将angular的http从get更改为post:
更改:
$http.get('/api/addmasterlist', dataa).success(function(data, status) {
到
正如我提到的app.get似乎可以工作,但我的问题是,我似乎无法让我的应用程序将数据发送到节点这是我在angular上编辑的代码*请检查post谢谢,我相信你使用的是get in angular而不是post。我编辑了我的答案,检查了一下,也尝试了一下,它给了我这个angular.js:12011 POST 400(错误的请求)/api/fetchmasterlist工作正常吗?当你在浏览器中打开它时?没有主意了。我会注释掉所有不必要的代码,只保留服务器上的post路由和angular中的post调用,看看它是否有效。正如我提到的app.get似乎有效,但我的问题是我似乎无法让我的app将数据发送到节点这是我在angular上编辑的代码*请检查post,我相信你使用的是get in angular邮政局局长。我编辑了我的答案,检查了一下,也尝试了一下,它给了我这个angular.js:12011 POST 400(错误的请求)/api/fetchmasterlist工作正常吗?当你在浏览器中打开它时?没有主意了。我会注释掉所有不必要的代码,只是将post路由保留在服务器上,并将post调用保留在服务器上,然后看看它是否有效。