$ .post不向node.js服务器发送数据

时间:2015-05-22 13:46:00

标签: javascript ajax node.js postgresql

我正在开发一个使用node.js作为后端服务器的项目,我使用postgresql作为我的数据库,但我在向node.js服务器发送数据时出现问题似乎是在$ .post方法。此外,当我运行我的页面时,我收到此错误

Failed to load resource: the server responded with a status of 500    (Internal Server Error)

这是我的ajax代码:

$.ajaxSetup ({
cache: false
});

$( "#getButton" ).bind( "click", function(event, ui) {
var q = $("#text1").val();
//alert("Click "+q);
var jsonUrl = "https://nwen304-heroku-quote-server.herokuapp.com/quote/"+q;
//alert("Fetching result from "+jsonUrl);
$.get(jsonUrl, function(data) {
  //alert(data.author);
  $("#result").html("<p><b>"+data.author+" said "+data.text+"</b></p>")
}, 'json').fail(function(data) {alert(data.responseText);     });
});


$( "#submitButton" ).bind( "click", function(event, ui) {
  var postAuthor = $("#author").val();
  var postQuote = $("#quote").val();

alert("Posting a new quote");
var jsonUrl = "https://nwen304-heroku-quote-server.herokuapp.com/quote";
var newQuote = { "author" : postAuthor, "text" : postQuote };
  alert(JSON.stringify(newQuote));
$.post(jsonUrl, newQuote, function(data) {
  alert("Added quote number " + data.pos + " " + data.author + " " + data.text);
  $("#feedback").html("Added quote number " + data.pos + " " + data.author + " " + data.text);
$("#feedback").fadeTo(3000, 0);
}, 'json');

这是我的node.js POST:

app.post('/quote', function(req, res) {
console.log(req.body);
alert("yoooo");
if(!req.body.hasOwnProperty('author') || !req.body.hasOwnProperty('text')) {
res.statusCode = 400;
return res.send('Error 400: Post syntax incorrect.');
}

var count;
query = client.query('SELECT count(*) FROM quotes');
query.on('row', function(result){
    if(!result){
        return res.status(404).send( "Can't find quote number " + req.params.id );
    }else{
        count = parseInt(result);
    }
});

var newQuote = {
    author : req.body.author,
    text : req.body.text
}


query = client.query('INSERT INTO quotes(author, quote, pos) VALUES($1, $2, $3))', [newQuote.author, newQuote.text, count+1]);
query.on('row', function(result){
    if(!result){
        return res.status(404).send('No quote found');
    }else{
        newQuote.pos++;
        return res.status(200).send(newQuote);
    }
});


 //quotes.push(newQuote);
 //// should send back the location at this point
 //console.log("Added!");
 //newQuote.pos = quotes.length-1;
 //res.send(newQuote);
 });

提前感谢您,如果问题很愚蠢我很抱歉我是node.js的新手

0 个答案:

没有答案