Untuk memodifikasi kode agar dapat memproses file besar, kita dapat menggunakan library 'stream' untuk mengirimkan data secara chunked (bergilir).

Berikut kode yang telah dimodifikasi:

const https = require('https');
const stream = require('stream');

async function x(m, {
    text,
}) {
    const [query, jumlah] = text.split(',');
    if (!(query && jumlah)) return m.reply('Usage:
!gimage keyword,amount

Example: 
!gimage Tsukasa,5');
    if (isNaN(jumlah)) return m.reply('Failed
Hanya bisa menerima input angka untuk jumlahnya');
    if (jumlah > limit) return m.reply('Failed
Tidak bisa mengirimkan lebih dari 10 foto');
    await m.reply(waitMsg);
    try {
        for (let i = 0; i < jumlah; i++) {
            const resp = await pickRandom(await googleImage(query));
            https.get(resp, (res) => {
                const chunks = [];
                const stream = new stream.Transform();
                res.on('data', (chunk) => {
                    chunks.push(chunk);
                });
                res.on('end', async () => {
                    stream.end(Buffer.concat(chunks));
                    const urlnya = await uploadImage(stream.read());
                    await conn.sendFile(m.chat, urlnya, '', 'Link: 
' + resp, m);
                });
            }).on('error', (err) => {
                console.error(err);
            });
        }
    }
    catch (e) {
        m.reply(erMsg);
    }
}

x.help = ['gimage < keyword,amount >'];
x.tags = ['media'];
x.command = ['image', 'googleimage', 'gimage'];
x.kupon = true
x.register = true;
export default x;

Perubahan utama terdapat pada bagian pengambilan data dari https request. Kita menggunakan stream.Transform() untuk mengirimkan data secara bergilir daripada menunggu seluruh data terkumpul terlebih dahulu.

Setelah itu, kita menggunakan stream.read() untuk membaca data yang telah dikirimkan secara bergilir dan mengirimkannya ke fungsi uploadImage().

Cara Mengoptimalkan Kode untuk Memproses File Besar dengan Node.js

原文地址: https://www.cveoy.top/t/topic/op0V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录