Tedious: Permintaan hanya dapat dilakukan dalam status Masuk, bukan status Final -- kesalahan

Dibuat pada 7 Jan 2016  ·  4Komentar  ·  Sumber: tediousjs/tedious

Hai semuanya,

Saya memiliki masalah dengan koneksi database. Ini berfungsi dengan baik untuk sementara waktu, tetapi sejak kemarin saya mengalami kesalahan ini. Saya tidak tahu mengapa.

[Kesalahan Permintaan: Permintaan hanya dapat dilakukan dalam status Masuk, bukan status Final]

connection.on('connect', function(err) {
        Console.log("-------here------");
    if(err) {
        return console.error(err); // <--
        connected = false;
    } else {
        connected = true;
    }
});

Saya pikir dia tidak masuk ke fungsi panggilan balik connection.on. Dia tidak mencetak apa pun dan terhubung selalu salah.

Terima kasih !!

Komentar yang paling membantu

Saya seorang pemula dalam semua ini, tetapi saya menemukan menambahkan penangan untuk acara debug koneksi membantu saya dengan kesalahan yang tepat ini. Saya menemukan bahwa koneksi saya ditolak oleh server sql.
connection.on('debug', function(err) { console.log('debug:', err);});

Semua 4 komentar

Saya memiliki masalah serupa.

C:\Users\Austin\Desktop\prok>node prok.js
{ [RequestError: Requests can only be made in the LoggedIn state, not the Connecting state
]
  message: 'Requests can only be made in the LoggedIn state, not the Connecting state',
  code: 'EINVALIDSTATE' }
buffer.js:506
    throw new RangeError('index out of range');
          ^
RangeError: index out of range
    at checkOffset (buffer.js:506:11)
    at Buffer.readUInt8 (buffer.js:544:5)
    at Packet.isLast (C:\Users\Austin\Desktop\prok\node_modules\tedious\lib\packet.js:121:
29)
    at ReadablePacketStream.<anonymous> (C:\Users\Austin\Desktop\prok\node_modules\tedious
\lib\message-io.js:102:18)
    at ReadablePacketStream.emit (events.js:107:17)
    at readableAddChunk (C:\Users\Austin\Desktop\prok\node_modules\tedious\node_modules\re
adable-stream\lib\_stream_readable.js:201:16)
    at ReadablePacketStream.Readable.push (C:\Users\Austin\Desktop\prok\node_modules\tedio
us\node_modules\readable-stream\lib\_stream_readable.js:165:10)
    at ReadablePacketStream.Transform.push (C:\Users\Austin\Desktop\prok\node_modules\tedi
ous\node_modules\readable-stream\lib\_stream_transform.js:133:32)
    at ReadablePacketStream._transform (C:\Users\Austin\Desktop\prok\node_modules\tedious\
lib\message-io.js:68:16)
    at ReadablePacketStream.Transform._read (C:\Users\Austin\Desktop\prok\node_modules\ted
ious\node_modules\readable-stream\lib\_stream_transform.js:172:10)

Saya cukup banyak menggunakan bentuk kode yang tepat di sini: https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-nodejs-simple-linux/

--prok.js--

var Connection = require('tedious').Connection;
var config = {
    userName: 'tester',
    password: 'tester',
    server: 'localhost',
    options: {
        port:3306
    }
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
    console.log("Connected");
});
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;
function executeStatement() {
    request = new Request("SELECT * FROM testdb.testtable;", function(err) {
    if (err) {
        console.log(err);}
    });
    var result = "";
    request.on('row', function(columns) {
        console.log('row');
        columns.forEach(function(column) {
          if (column.value === null) {
            console.log('NULL');
          } else {
            result+= column.value + " ";
          }
        });
        console.log(result);
        result ="";
    });
    request.on('done', function(rowCount, more) {
    console.log(rowCount + ' rows returned');
    });
    connection.execSql(request);
}

executeStatement();

@yossazou Tidak ada informasi yang cukup di sini untuk memahami apa yang terjadi. Kesalahan yang Anda lihat berarti Anda mencoba menjalankan permintaan saat membosankan tidak lagi terhubung ke DB.

@austincap Anda menjalankan permintaan pada koneksi sebelum koneksi dibuat. Itu sebabnya Anda mendapatkan kesalahan Requests can only be made in the LoggedIn state, not the Connecting state .

Saya seorang pemula dalam semua ini, tetapi saya menemukan menambahkan penangan untuk acara debug koneksi membantu saya dengan kesalahan yang tepat ini. Saya menemukan bahwa koneksi saya ditolak oleh server sql.
connection.on('debug', function(err) { console.log('debug:', err);});

var Koneksi = membutuhkan('membosankan').Koneksi;
var Permintaan = membutuhkan('membosankan').Permintaan;
var ekspres = membutuhkan("ekspres");
var bodyParser = membutuhkan("body-parser");
var aplikasi = ekspres();

// Middleware Pengurai Tubuh
app.use(bodyParser.json());

//Menyiapkan server
var server = app.listen(process.env.PORT || 8081, function() {
var port = server.address().port;
console.log("Aplikasi sekarang berjalan di port", port);
});

// Buat koneksi ke database
konfigurasi var = {
autentikasi: {
pilihan: {
namapengguna: 'nama pengguna', // perbarui saya
kata sandi: 'kata sandi' // perbarui saya
},
ketik: 'default'
},
server: 'servername.database.windows.net', // perbarui saya
pilihan: {
database: 'pengembangan', //perbarui saya
enkripsi: benar//penting
}
}
//buat koneksi ke azure
var koneksi = Koneksi baru(config);
//membuat larik json
var data = []
function executeStatement(query, res) {
var request = new Request(query, function(err, rowCount, rows) {
jika (salah) {
console.log(err);
} kalau tidak {
console.log(rowCount + 'baris');
res.send({ status: 200, data: data, pesan: "OK"})
}
});

//connection.on('debug', function(err) { console.log('debug:', err);}); if the connection is not working

request.on('row', function (row) {
  data.push({
      ID: row[0].value,
      ProductName: row[1].value,
      Price: row[2].value,
      ProductDescription: row[3].value,
      CreatedDate: row[4].value,
      Username: row[5].value
  })

});
koneksi.execSql(permintaan);
}

app.get('/api/products', function (req, res) {
var query =('Pilih * dari Produk');
executeStatement(permintaan, res);
});

// saya perhatikan bahwa kata sandi db dan kredensial pengguna saya diatur ulang sehingga tidak dapat membuat koneksi

Apakah halaman ini membantu?
0 / 5 - 0 peringkat