【问题标题】:How to get data with ajax from a query string from a route in Node.js?如何使用 ajax 从 Node.js 中路由的查询字符串中获取数据?
【发布时间】:2017-08-15 17:24:09
【问题描述】:

正如我的标题所说,我正在尝试使用包含 json 数据('/home/playback/json')的 AJAX 请求从路由中提取数据。但是除非完成查询,否则此数据将不存在但我试图从我的客户端页面(playback.ejs)中合并它,但我无法将查询连接到连接到我的数据库的路由。我应该尝试任何想法或文档?

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);
    });
});

【问题讨论】:

    标签: javascript jquery node.js ajax express


    【解决方案1】:

    我可能会遗漏一些东西,但这不可行吗?

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

    另外:注意 SQL 注入漏洞。如果没有适当的用户输入卫生,任何人都可能删除您的数据库。

    【讨论】:

    • 是的,这对我获取数据很有用。但是如果我想让它用一个表格来做呢?就像我有一个输入并想将 $.ajax 中的 url 更改为不同的查询我将如何去做?哦,是的,我刚开始熟悉将 MySQL 与 node 结合使用,我将了解更多关于 SQL 注入漏洞的 connection.escape() 或 pool.escape() 方法。
    • 您可以使用var searchFileNumber = $("#id-of-input-field").val(); 获取输入字段的值,然后使用"http://localhost:8080/home/playback/json?searchFileNumber=" + searchFileNumber 将其附加到url
    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多