0

代码 ytdl.js

const ytdl = require('ytdl-core')
const fs = require('fs')

downloadAudio = link => {
    return new Promise((resolve, reject) => {
        const stream = ytdl(link).pipe(fs.createWriteStream(`musica.mp3`));
        stream.on('error', () => {
            console.log('Tive problemas para baixar sua música!')
            reject();
        })
        stream.on('close', () => {
            console.log('Baixado!')
            resolve();
        })
    })
}

代码 index.js


const api = require('./ytdl')

api.downloadAudio('https://www.youtube.com/watch?v=I3A45smjVo4').then(()=>{
    console.log('Música baixada!')
}).catch(()=>{
    console.log('Tive algum problema para baixar sua música!')
})

为什么当我编译代码时系统只是关闭?我错过了承诺吗?

Obs:我是初学者,对不起。

4

1 回答 1

3

如果要downloadAudio()在模块外使用,则需要导出,否则该功能只能在模块内部使用。这意味着调用api.downloadAudioisundefined因为downloadAudio在模块之外不存在。

所以换行

downloadAudio = link => {

exports.downloadAudio = link => {

更多信息可以在文档中找到。

于 2020-12-15T19:30:16.637 回答