2017-08-15 63 views
1

就像我的標題所說,我試圖從包含json數據的AJAX請求('/ home/playback/json')的路由中提取數據。但這個數據將不存在,除非查詢完成但我試圖從我的客戶端頁面(playback.ejs)合併這個,但我無法連接查詢到我的路由連接到我的數據庫。任何想法或文件我應該嘗試?如何從Node.js中的路由查詢字符串中獲取ajax數據?

AJAX請求

$(document).ready(function() { 
$('#search').on('submit', function() { 
    $.ajax({ 
     url: "http://localhost:8080/home/playback/json", 
     contentType: "application/json",    
     dataType: 'json', 
     success: function (data) { 
      console.log(data); 
     },error: function() { 
      alert('error'); 
     }, 
     type: "GET", 
    }); 
}); 
}); 

Route.js

app.get('/home/playback', function (req, res) { 
    res.render('playback.ejs'); 
}); 
app.get('/home/playback/json', function (req, res) { 
    //database connection 
    dbconnection.query("SELECT * FROM myTable WHERE FILE_NUM LIKE '%" + req.query.searchFileNumber + "%' LIMIT 5", function (err, rows, fields) { 
     if (err) throw err; //Show any errors 
     var data = []; 
     for (i = 0; i < rows.length; i++) { 
      data.push(rows[i]); 
     }   
     res.json(data); 
    }); 
}); 

回答

0

我可能失去了一些東西,但不會這項工作?

$.ajax({ 
    url: "http://localhost:8080/home/playback/json?searchFileNumber=1", 
    .... 

另請注意:注意SQL注入漏洞。沒有適當的用戶輸入環境衛生,任何人都可能丟失數據庫

+0

是的,這工作讓我得到我的數據。但是如果我想用表單來做呢?就像如果我有一個輸入,並希望將$ .ajax中的url更改爲不同的查詢,我將如何去做這件事? 哦,是的,我剛剛熟悉MySQL首先使用節點,並且我將更多地瞭解有關SQL注入漏洞的connection.escape()或pool.escape()方法。 –

+0

你可以使用'var searchFileNumber = $(「#id-of-input-field」).val();'來獲得輸入字段的值,然後使用'「http:// localhost: 8080/home/playback/json?searchFileNumber =「+ searchFileNumber' –

+0

它的工作表示感謝! –

相關問題