Проблемы с петлей с ботом Telegram - PullRequest
1 голос
/ 10 марта 2019

В настоящее время я разрабатываю бот-телеграмму.

Вот мой код:

bot.command('check', ctx => {
console.log(ctx.from.id, ctx.chat.id)
var files = getFilesFromDir("toSend", [".txt"])
if(files.length > 0){

  for (i = 0; i < files.length; i++) {
    const url = 'https://api.telegram.org/bot'+bot_token+'/sendDocument'

    let r = request(url, (err, res, body) => {
        if(err) console.log(err)
        console.log(body)
    })
    console.log(files[i])
    let f = r.form()
    f.append('chat_id', '476090013')
    f.append('document', fs.createReadStream("tosend/"+files))
  }
}else{
  console.log('r')
}
})

У меня проблемы с циклом, я попробовал for, но не могу понять.

У меня есть папка с именем tosend, я хочу, чтобы каждый находящийся там файл передавался в telegram api.

Для одного файла это работает, но если в папке более одного файла, f.append('document', fs.createReadStream("tosend/"+files)) файлы + принимают каждое имя вместо одного.

1 Ответ

1 голос
/ 10 марта 2019

Вы пытаетесь создать поток из массива файлов: +files (который будет возвращать разделенную запятыми строку со всеми именами файлов).

Вам необходимо использовать files[i] для созданияпоток на файл.

f.append('document', fs.createReadStream("tosend/" + files[i]))
...