【问题标题】:Why getting the data from db for different post give it me the result from first-time post为什么从数据库中获取不同帖子的数据给我第一次发布的结果
【发布时间】:2019-07-18 13:55:59
【问题描述】:

即使我发送不同的帖子,也只能使用一次数据。 变量var sender = req.body.sender; var user_c = req.body.user; 已更新,但不是查询的结果

var express   =    require("express");
var mysql = require('mysql');
var app       =    express();
const bodyParser = require('body-parser');
var connection = mysql.createConnection({
    host: "192.168.1.3",
    port: "33993",
    user: "root",
    password: "******",
    database: "app_ap"
});

connection.connect(function(err) {
    if (err) throw err;
    console.log("Connected!");
});

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('', (req, res) => {
    var sender = req.body.sender;
    var user_c = req.body.user;
    console.log(user_c); // your data
    console.log(sender); // your data
    app.get("/",function(req,res){-
        handle_database(req,res);
    });
    /*connection.query("UPDATE `users_tb` SET `sender` = '"+sender+"', `user` = '"+user_c+"' ",function(err,rows){
        if(err) {
            return res.json({'error': true, 'message': 'Error occurred'+err});
        }*/
        function handle_database(req,res) {
            // connection will be acquired automatically
            connection.query("SELECT messages.message,messages.sent_date, receiver_user.username, sender_user.username  " +
                "FROM messages " +
                "INNER JOIN users AS sender_user ON messages.msg_fk_user_id = sender_user.id " +
                "INNER JOIN users AS receiver_user ON messages.receiver_id = receiver_user.id " +
                "JOIN users AS user_id ON messages.msg_fk_user_id = user_id.id " +
                "WHERE sender_user.username = '"+user_c+"' AND receiver_user.username = '"+sender+"' OR sender_user.username = '"+sender+"' AND receiver_user.username = '"+user_c+"' " +
                "ORDER BY `sent_date`",function(err,rows){
                if(err) {
                    return res.json({'error': true, 'message': 'Error occurred'+err});
                }
                //connection will be released as well.
                res.json(rows);
            });
        }

    // do something with that data (write to a DB, for instance)
    res.status(200).json({
        message: "Data received successfully"
    });
});

app.listen(3003);

【问题讨论】:

    标签: node.js get http-post


    【解决方案1】:

    您对 app.get 的调用在您的 app.post 处理函数中。将此调用移出 post 函数处理程序。我看不出有任何理由让你注册一个邮政电话。只需使用 get 调用来检索您的数据。

    function handle_database(req, res) {
      var sender = req.query.sender; // These are now query params.
      var user_c = req.query.user;
      ...
    }
    
    app.get("/",function(req,res){
            handle_database(req,res);
    });
    

    【讨论】:

    • 我需要从我的安卓应用中发布一些数据。 var sender = req.body.sender; var user_c = req.body.user; 这些变量是我使用来自 Android 应用程序的 HTTP 发布请求发布的。
    • 可以在GET请求的查询字符串中提交数据。
    • 你的意思是它会像帖子一样工作?因为它给了我undefined变量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2023-03-17
    相关资源
    最近更新 更多