gpt4 book ai didi

javascript - 尝试使用 mkdirp 创建目录时 Node.js 引发错误

转载 作者:行者123 更新时间:2023-12-03 01:43:18 25 4
gpt4 key购买 nike

我正在尝试使用 Node.js 下载并稍后提供图像。我需要将每个图像保存在 url 指定的目录中。我下载图像的代码被卡住了,因为没有目录可以保存它们。我正在尝试使用 mkdirp 创建一个但不断收到错误[错误:EACCES:权限被拒绝,mkdir '/20110'] errno:-13,代码:'EACCES',系统调用:'mkdir',路径:'/20110'。这是我的完整代码:

controller.serveImages = function(req, res, connection) {
var file = "/" + req.params.attachmentId + "/" + req.params.attachmentFileName;
console.log("serve called", file);
var fs = require('fs'),
request = require('request');
var mkdirp = require('mkdirp');
mkdirp( "/" + req.params.attachmentId, function (err) {
if (err) console.error(err)
else console.log('Directory made!')
});
fs.readFile(file, function(error, data) {
console.log("reading");
if(error){
if (error.code === 'ENOENT') { //File not downloaded
var download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);

request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};

download('https://www.google.com/images/srpr/logo3w.png', file, function(){
console.log('done');
});
}
else{
console.log(error)
}
}
else{
console.log("Found locally", data, file);
res.sendFile(file);
}
});

};

代码改编自here 。请求示例为 /20110/TNCA+PB.png。这样,我想创建一个目录 /20110 并将 TNCA+PB.png 保存在那里。

最佳答案

您似乎正在尝试在文件系统根级别创建文件夹。您是否尝试过在应用程序文件夹下创建该文件夹?写入根级别从来都不是一个好主意。

这里有一些获取应用运行路径的建议Determine project root from a running node.js application ,然后您可以将其附加到您的 mkdirp 函数中。

问候

关于javascript - 尝试使用 mkdirp 创建目录时 Node.js 引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50747543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com