Node.JS MySQL object dönüyor

Katılım
13 Eylül 2018
Mesajlar
778
Çözümler
3
Yer
Kocaeli
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Node.Js ile MySQL kullanıyorum ve aşağıdaki kodu çalıştırdığımda bana number olarak dönmesi gereken değer object olarak dönüyor, herhangi bir hata gözükmüyor. Bu sorunu nasıl çözebilirim?

JavaScript:
console.log(db.query(`SELECT whitelistCount FROM users WHERE id = ${msg.author.id}`));

1608385273713.png
 
Castlemeyi denediniz mi?
Denedim ayrıca anladığım kadarıyla bu bir hata. Birazdan dönen object i paylaşacağım.
JavaScript:
<ref *1> Query {
  _events: [Object: null prototype] {
    error: [Function (anonymous)],
    packet: [Function (anonymous)],
    timeout: [Function (anonymous)],
    end: [Function (anonymous)]
  },
  _eventsCount: 4,
  _maxListeners: undefined,
  _callback: undefined,
  _callSite: Error
      at Protocol._enqueue (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\mysql\lib\protocol\Protocol.js:144:48)
      at Connection.query (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\mysql\lib\Connection.js:198:25)      at Client.<anonymous> (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\index.js:30:20)
      at Client.emit (events.js:315:20)
      at WebSocketManager.triggerClientReady (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\discord.js\src\client\websocket\WebSocketManager.js:431:17)
      at WebSocketManager.checkShardsReady (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\discord.js\src\client\websocket\WebSocketManager.js:415:10)
      at WebSocketShard.<anonymous> (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\discord.js\src\client\websocket\WebSocketManager.js:197:14)
      at WebSocketShard.emit (events.js:315:20)
      at WebSocketShard.checkReady (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\discord.js\src\client\websocket\WebSocketShard.js:475:12)
      at WebSocketShard.onPacket (C:\Users\aeasi\Desktop\Modern Westerns Whitelist\node_modules\discord.js\src\client\websocket\WebSocketShard.js:447:16),
  _ended: false,
  _timeout: undefined,
  _timer: Timer { _object: [Circular *1], _timeout: null },
  sql: 'SELECT * FROM users',
  values: undefined,
  typeCast: true,
  nestTables: false,
  _resultSet: null,
  _results: [],
  _fields: [],
  _index: 0,
  _loadError: null,
  _connection: <ref *2> Connection {
    _events: [Object: null prototype] {},
    _eventsCount: 0,
    _maxListeners: undefined,
    config: ConnectionConfig {
      host: '127.0.0.1',
      port: 3306,
      localAddress: undefined,
      socketPath: undefined,
      user: 'root',
      password: undefined,
      database: 'testdb',
      connectTimeout: 10000,
      insecureAuth: false,
      supportBigNumbers: false,
      bigNumberStrings: false,
      dateStrings: false,
      debug: undefined,
      trace: true,
      stringifyObjects: false,
      timezone: 'local',
      flags: '',
      queryFormat: undefined,
      pool: undefined,
      ssl: false,
      localInfile: true,
      multipleStatements: false,
      typeCast: true,
      maxPacketSize: 0,
      charsetNumber: 33,
      clientFlags: 455631
    },
    _socket: Socket {
      connecting: true,
      _hadError: false,
      _parent: null,
      _host: null,
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 5,
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: null,
      _server: null,
      timeout: 10000,
      [Symbol(async_id_symbol)]: 75,
      [Symbol(kHandle)]: [TCP],
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: Timeout {
        _idleTimeout: 10000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2191,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        [Symbol(refed)]: false,
        [Symbol(kHasPrimitive)]: false,
        [Symbol(asyncId)]: 78,
        [Symbol(triggerId)]: 35
      },
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0
    },
    _protocol: Protocol {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      readable: true,
      writable: true,
      _config: [ConnectionConfig],
      _connection: [Circular *2],
      _callback: null,
      _fatalError: null,
      _quitSequence: null,
      _handshake: true,
      _handshaked: false,
      _ended: false,
      _destroyed: false,
      _queue: [Array],
      _handshakeInitializationPacket: null,
      _parser: [Parser],
      [Symbol(kCapture)]: false
    },
    _connectCalled: true,
    state: 'disconnected',
    threadId: null,
    [Symbol(kCapture)]: false
  },
  [Symbol(kCapture)]: false
}
 
Son düzenleme:
Aslında query async function, bununla birlikte aslında birebir değer döndürmez. Varsayılan olarak istek detaylarını içeren değerleri döndürür.

Bu bağlamda callback, promise gibi yöntemlerle sorunu çözebileceğinizi düşünüyorum.

JavaScript:
exports.whiteList = function() {
  return new Promise(function (res, rej) {
    db.query(`SELECT whitelistCount FROM users WHERE id = ${msg.author.id}`, function (err, results, fields) {
      if (err) return rej(err);
      return res(results);
    });
  });
};

whiteList().then(function(results) {
  console.log('whitelist Count:', results);
});
 
@Netluckie yardımınız için teşekkürler söylediğiniz yöntem çalışıyor ancak ben daha önce çözmüştüm sorunu paylaşmayı unutmuşum.

JavaScript:
db.query("SELECT whitelistCount FROM users WHERE id = " + msg.author.id, function (err, result, fields) {
    let a = JSON.parse(JSON.stringify(result[0])).whitelistCount;
    let newCount = a + 1;
    db.query("UPDATE users SET whitelistCount = " + newCount + " WHERE id = " + msg.author.id)
});
Önce JSON.stringify ile string değere çevirip daha sonra JSON.parse ile object e çevirmemin sebebi sadece string değere çevirildiğinde RawDataPacket olarak dönmesidir.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı