2015-11-02 40 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

但我不再插入到數據庫中。沒有任何內容插入分貝。:( –