ENOENT - 但我的文件只在同一个目录中...... 大家好我尝试使用API将文件birds.mp3发送到我的Google云端硬盘。该文件必须由要发送的函数到达。
尽管我尝试发送的文件与代码所在的文件夹相同,但我的控制台还是回复了我:
events.js:183
扔掉呃//未处理的错误'事件^
错误:ENOENT:没有这样的文件或目录,打开' ./ birds.mp3'
这是我的树:
-- folder
|-- birds.mp3
|-- quickstart.js
这是我的quickstart.js
module.exports.insertDrive = function (req) {
console.log("callback reached.")
var url = req.body.url;
var folderId = 'id';
var fileMetadata = {
'name': req.body.word,
parents: "id"
};
var media = {
mimeType: 'audio/*',
body: fs.createReadStream("./birds.mp3") // PATH FUNCTION HERE
};
drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id'
}, function (err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('File Id: ', file.id);
}
})};
我无法弄清楚为什么我的档案无法联系到。我尝试了几个技巧,比如path.resolve和所有,我试着把我的birds.mp3推到几个文件夹中,如果有的话,但是失败了。
感谢。
答案 0 :(得分:1)
如果您尝试从与当前模块相同的目录加载文件并将其传递给Google API,请使用__dirname
代替./
。 ./
使用当前工作目录,该目录将取决于整个程序的调用方式,并且不会指向您的模块目录。
因此,如果目标文件与模块位于同一目录中,请更改:
fs.createReadStream("./birds.mp3")
到此:
fs.createReadStream(path.join(__dirname, "birds.mp3"));