【问题标题】:How do I transfer data from a client-side form input to a server-side Nodejs script?如何将数据从客户端表单输入传输到服务器端 Nodejs 脚本?
【发布时间】:2015-09-22 07:08:45
【问题描述】:

我正在尝试实现从客户端的表单输入中获取数据并将其发送到服务器以由我的 Nodejs 后端处理的功能。

我已经让服务器端功能正常工作,但我不确定如何通过提交的$.ajaxGET 请求将数据从客户端表单发送到我的后端服务器表格。

我目前的代码:

服务器端功能:

app.get('/id', function(req,res) {
    var query = "SELECT * FROM Control";
    connection.query(query, function() {
            console.log(query);
    });
});

客户端功能:

function select()
            {

                $.ajax({
                    type: 'get',
                    url: '/id',
                    success: function(data) {
                        var ceva = data;
                        console.log('#ceva');


                    },
                    error: function(err) {
                        console.log(err);
                    }

                    });
            }

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    您想使用 POST 请求而不是 GET 请求。这样做将允许您与请求一起发送数据,然后您可以在服务器端的查询中使用这些数据并将响应发送回您的客户端。像这样:

    客户端

    function select() {
    
         var id = $('#My-ID-Input').val();
    
         $.ajax({
            type: 'post',
            url: '/id',
            data : {
                 id : id
            },
            success: function(data) {
                 var id = data.id;
                 $('#My-ID-Input').val(id);
            },
            error: function(err) {
                 console.log(err);
            }
    
        });
    }
    

    服务器端

    app.post('/id', function(req, res) {
    
        var data = req.body;
        var id = data.id;
    
        var query = "SELECT * FROM Control WHERE id=" + id;
        connection.query(query, function(error, result) {
            console.log(result);
            res.send(result);
        });
    
    });
    

    GOTCHA!

    您需要确保您拥有express bodyparser 中间件实现到您的服务器中,以确保发送的数据 因为 post 请求的主体随后被解析为对象字面量 在服务器端。在您的服务器模块/文件中,您需要包含以下代码,并确保您拥有 npm install body-parser:

    var bodyParser = require('body-parser');

    app.use( bodyParser.json() );

    【讨论】:

    • 是的,我当然有。但是剩下的事情呢?最烦人的是如何根据在文本框中输入的 id 进行选择,以及如何用所选值填充文本框。这就是我不明白的。
    • 您已经在使用 JQuery,因此您只需从服务器获取 data 响应,然后使用 JQuery 更新任何给定输入的值。我已经编辑了上面的回复来说明。
    • 好的。了解。剩下的唯一问题是您编写了查询以仅选择名为 id 的列。但我试图做的是从文本框中选择所有列 WHERE id = value。所以。我不明白如何将值从客户端发送到服务器端并使用它来正确查询。我尝试查询为:request.param.id,但它仅适用于浏览器链接中 / 之后的内容。希望你明白我的想法。非常感谢!
    • 这只是更新您的 SQL 查询的问题,正如我在上面所说明的。它与客户端和服务器之间的数据传递方式无关。
    • 好的。我明白了,这个想法。我会试一试,看看它在早上是如何工作的。非常感谢现在。你太棒了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多