【问题标题】:Socket returns '[Object object]'套接字返回“[对象对象]”
【发布时间】:2019-04-25 22:52:27
【问题描述】:

我试过了,但找不到任何解决方案,我试图将数据解析到我的服务器文件,该文件将内容放入 mysql 数据库,但它总是只输出 [object Object],我真的找不到任何解决方案。将不胜感激。

Main.js

   "use strict";
$(document).ready(function() {
    var socket = io.connect(":2096");
        var s = socket;
        function connect() {
                if (!socket) {
                    if (hash == "" || hash != "") {}
            socket = io(":2096");
            s.on('connect', function() {
                if (hash != "") {}
                s.emit('hash', hash);
            });
        }
}
    connect();
});
$(document).on('click', '.adm-req', function(data) {
    var name1 = $('#firstname');
    var lastname = $('#lastname');
    var userid = $('#userid');
    var pin = $('#pin');
    var password = $('#password');
    socket.emit('--get-request_adm', {
        firstname: name1,
        lastname: lastname,
        userid: userid,
        pin: pin,
        password: password
    });  
});

服务器.js

var mysql = require('mysql');
var log4js = require('log4js');
var request = require('request');
var fs = require('fs');
var crypto = require('crypto');
var md5 = require('md5');
var sha256 = require('sha256');
var math = require('mathjs');
var logger = log4js.getLogger();
var nodemailer = require('nodemailer');


var express = require('express');
var app = express();

var httpServer = require('https').createServer(options, app)
var io = require('socket.io')(httpServer);
httpServer.listen(2096);

io.on('connection', function(socket) {  
    socket.on('--get-request_adm', function(data) {
        pool.query('INSERT INTO `users` SET `firstname` = "'+data.firstname+'"')
    });
});
function query(sql, callback) {
    if (typeof callback === 'undefined') {
        callback = function() {};
    }
    pool.getConnection(function(err, connection) {
        if (err) return callback(err);
        connection.query(sql, function(err, rows) {
            if (err) return callback(err);
            connection.release();
            return callback(null, rows);
        });
    });
}

【问题讨论】:

  • [object Object] 来自哪里?哪个文件的哪一行?
  • $('#firstname') 是一个 jQuery 对象 - 你想要那个输入的 value,毫无疑问......所以var name1 = $('#firstname').val() - 重复你所有的输入
  • @JackBashford 它是 mysql 数据库的输出。而不是从输入中输入文本,而是输入 [object Object]。
  • @JaromandaX 你到底是什么意思?我已经在使用 var name1 = $('#firstname');如您所见
  • 正如我所说,它返回一个 jQuery 对象...不是您寻求的输入的值 - 您是否在大约 3 个单词后停止阅读并决定我不知道我在说什么关于?你读过我说你需要使用$('#firstname').val() 的部分吗?

标签: javascript jquery html websocket socket.io


【解决方案1】:

问题出在这个

var name1 = $('#firstname');
// etc

返回一个 jQuery object - 这就是为什么字符串值为[object object]

尝试使用 jquery.val() 获取输入的 (当然假设它们是输入)

$(document).on('click', '.adm-req', function(data) {
    var name1 = $('#firstname').val();
    var lastname = $('#lastname').val();
    var userid = $('#userid').val();
    var pin = $('#pin').val();
    var password = $('#password').val();
    socket.emit('--get-request_adm', {
        firstname: name1,
        lastname: lastname,
        userid: userid,
        pin: pin,
        password: password
    });  
});

或者,如果您出于其他原因需要 jQuery 对象

$(document).on('click', '.adm-req', function(data) {
    var name1 = $('#firstname');
    var lastname = $('#lastname');
    var userid = $('#userid');
    var pin = $('#pin');
    var password = $('#password');
    socket.emit('--get-request_adm', {
        firstname: name1.val(),
        lastname: lastname.val(),
        userid: userid.val(),
        pin: pin.val(),
        password: password.val()
    });  
});

【讨论】:

  • 哦,是的,我现在明白你的意思了,是的,当然......谢谢!
【解决方案2】:

您想使用 firstnamevalue,而不是对象本身 - 所以在声明它时获取它:

var name1 = $('#firstname').val();

对所有声明执行此操作以获取值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2018-07-11
    • 2021-06-30
    相关资源
    最近更新 更多