Telegram 机器人的循环问题
Loop problems with Telegram bot
我目前正在开发电报机器人。
这是我的代码:
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
的文件夹,我希望其中的每个文件都传输到电报 api。
对于一个文件,它可以正常工作,但如果文件夹中有多个文件,f.append('document', fs.createReadStream("tosend/"+files))
+files 会使用每个名称而不是一个。
您正在尝试从文件数组创建流:+files
(这将 return 一个包含所有文件名的逗号分隔字符串)。
您需要使用 files[i]
为每个文件创建一个流。
f.append('document', fs.createReadStream("tosend/" + files[i]))
我目前正在开发电报机器人。
这是我的代码:
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
的文件夹,我希望其中的每个文件都传输到电报 api。
对于一个文件,它可以正常工作,但如果文件夹中有多个文件,f.append('document', fs.createReadStream("tosend/"+files))
+files 会使用每个名称而不是一个。
您正在尝试从文件数组创建流:+files
(这将 return 一个包含所有文件名的逗号分隔字符串)。
您需要使用 files[i]
为每个文件创建一个流。
f.append('document', fs.createReadStream("tosend/" + files[i]))