Vk-io: Sepertinya context.hasText() tidak bekerja dengan benar.

Dibuat pada 12 Jan 2018  ·  22Komentar  ·  Sumber: negezor/vk-io

Simpul - v9.2.0
VK-IO - 4.0.0-alpha.8

Cek itu sendiri:

if (!message.hasText() && message.isOutbox() && message.text[0] !== '/' && message.getChatId() != 4) return next();
let command = message.text.split(" ")[0].slice(1).toLowerCase()

(Kesalahan menunjuk ke baris terakhir)

Handle polling update error: TypeError: Cannot read property 'split' of null
at vk.updates.on (/home/bots/vk/vk.js:198:29)
at Array.use (/home/bots/vk/node_modules/vk-io/lib/updates/index.js:136:15)
at next (/home/bots/vk/node_modules/middleware-io/lib/middleware.js:80:22)
at stack.(anonymous function) (/home/bots/vk/node_modules/middleware-io/lib/middleware.js:80:34)
at Array.use (/home/bots/vk/node_modules/vk-io/lib/updates/index.js:140:13)
at next (/home/bots/vk/node_modules/middleware-io/lib/middleware.js:80:22)
at Middleware.run (/home/bots/vk/node_modules/middleware-io/lib/middleware.js:87:10)
at Updates.dispatchMiddleware (/home/bots/vk/node_modules/vk-io/lib/updates/index.js:678:28)
at Updates.handlePollingUpdate (/home/bots/vk/node_modules/vk-io/lib/updates/index.js:213:23)
at Promise.all.response.updates.map (/home/bots/vk/node_modules/vk-io/lib/updates/index.js:660:22)

Komentar yang paling membantu

vk.setOptions({ agen });

Semua 22 komentar

if (message.isOutbox() || message.getChatId() !== 4 || !message.hasText() || message.getText()[0] !== '/') {
  await next();
}

Untuk alasan yang baik, keluarkan isOutbox secara terpisah untuk memeriksa apakah pesan keluar tidak diperlukan.

if (message.isOutbox()) {
  return;
}

Sekarang ada 2 kesalahan.

Handle polling update error: Error: next() called multiple times
at next (/home/bots/vk/node_modules/middleware-io/lib/middleware.js:69:11)
at stack.(anonymous function) (/home/bots/vk/node_modules/middleware-io/lib/middleware.js:80:34)
at vk.updates.on (/home/bots/vk/vk.js:376:15)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)


Handle polling update error: TypeError: Cannot read property 'split' of null
at vk.updates.on (/home/bots/vk/vk.js:200:33)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)

Seperti apa tampilan kode secara umum?

Apakah Anda berbicara tentang baris 376?
Sebelum itu ada banyak cek untuk kebetulan teks yang berbeda dan pada baris 376 ada else await next();
ITU. Jika tidak ada yang cocok, tunggu selanjutnya ()

  1. Kesalahan menunjukkan bahwa next() dipanggil beberapa kali.
  2. Mencoba mengakses split dari null. Saya pikir logis bahwa ini karena fakta bahwa tidak ada teks.

Oke, saya pikir saya akan mengatasinya dengan yang pertama, tapi apa yang harus saya lakukan dengan kesalahan kedua?
Mengapa saya mendapatkan nol di message.getText ()?

Karena teksnya hilang.

Bukankah seharusnya fungsi context.hasText() memeriksa ini?

Metode hasText() akan mengembalikan true jika ada teks, jika tidak false . Seperti yang saya katakan, masalahnya ada pada serangkaian pemeriksaan.

Yah, saya mengambil urutan cek Anda, dan ada masalah di atasnya.

if (message.isOutbox() || message.getChatId() !== 4 || !message.hasText() || message.getText()[0] !== '/') {
  await next();
}

Saya tidak dapat melihat keseluruhan gambar dengan kode ini. Ada kesalahan karena kondisi salah ditempatkan atau kesalahpahaman lengkap tentang cara kerja middleware Promise.

Saya mengubah struktur kode ke yang lebih benar dari sudut pandang saya, mari kita lihat apakah kesalahan itu hanya karena kurva struktur.

Saya juga memperhatikan bahwa info proxy hilang entah kemana.
Sudahkah Anda menghapus dukungan mereka?

Dukungan tetap ada, hanya sekarang Anda perlu menggunakan agen https untuk proxy.

Di mana saya dapat menemukan informasi tentang cara menggunakan ini?
Dan selanjutnya...
Sepertinya dok Anda tidak memiliki daftar semua acara yang dapat Anda dengarkan.
Akan lebih baik jika Anda menambahkan itu)

Yah, secara umum, cukup dengan google https proxy agent , saya pikir saya akan melakukannya nanti.

Hampir tidak ada waktu sama sekali untuk membuat dokumentasi, tetapi saya pikir itu akan berhasil.

Ada kebutuhan untuk menggunakan proxy lagi ...
Bisakah Anda menunjukkan contoh penggunaannya dengan perpustakaan Anda?

Anda harus melewati implementasi agen dalam opsi. Modul https-proxy-agent mungkin cocok untuk ini.

Pilihan apa?

vk.setOptions({ agen });

Terima kasih

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

AndreiSoroka picture AndreiSoroka  ·  6Komentar

Jengas picture Jengas  ·  15Komentar

T1MOXA picture T1MOXA  ·  29Komentar

Saiv46 picture Saiv46  ·  9Komentar

zardoy picture zardoy  ·  18Komentar