2015-11-02 23 views
0

我是Node J的新手,我想使用ajax提交表单,就像我们在PHP/CakePHP中所做的一样,但是在这里我面临一个问题。使用Ajax的Node JS Form Sumit

HTML代码

<form role="form" action="javascript:;" id="myform"> 
     <div class="form-group"> 
      <label for="name">Name:</label> 
      <input type="text" class="form-control" id="name" name="name" placeholder="Enter Name"> 
     </div> 
     <div class="form-group"> 
      <label for="email">Email:</label> 
      <input type="email" class="form-control" id="email" name="email" placeholder="Enter email"> 
     </div> 
     <button type="submit" class="btn btn-default" id="enter">Submit</button> 
     </form> 

我的AJAX代码是

$('.btn').click(function(e){ 
      e.preventDefault(); 
      var data = $('#myform').serialize(); 
      $.ajax({ 
       url: '/ajax', 
       type: 'POST', 
       cache: false, 
       data: JSON.stringify(data), 
       contentType: 'application/json', 
       success: function(data) { 
          console.log(data); 
          console.log(JSON.stringify(data)); 
         }, 
       error: function(jqXHR, textStatus, err){ 
        alert('text status '+textStatus+', err '+err); 
       } 
      }) 
      });    

app.js代码

app.post('/ajax', bodyParser(), function (req, res){ 

    var obj = {}; 
    console.log('body: ' + JSON.stringify(req.body)); 

    var input = JSON.stringify(req.body); 
    var data = { 

     name : input.name, 
     email : input.email 
    }; 

    var query = db.query("INSERT INTO users set ?",data, function(err, rows){ 
    console.log(query.sql); 
     if (err) 
      console.log("Error inserting : %s ",err); 
     res.send({'success' : true, 'message' : 'Added Successfully'}); 
    }); 


}); 

但是,当我提交这种形式则产生像

SyntaxError: Unexpected token " 
    at parse (D:\man_node\node_modules\body-parser\lib\types\json.js:83:15) 
+0

哪条线给你的错误替换var data = $('#myform').serialize();? – mic4ael

+0

我无法找到该行。 :( –

回答

1

我认为,我不是100%肯定的节点控制台的错误,你应该与var data = $('#myform').serializeArray();

+0

OMG,这是我忘记添加的内容。非常感谢。 –

+0

但我不再插入到数据库中。没有任何内容插入分贝。:( –