Javascript 错误:enoint,使用nodejs下载.jpg时没有这样的文件或目录
我正在使用nodejs服务器和discordjs构建一个discord机器人,我正在尝试做的一件事是将.jpg discord链接(即)传递到npm模块jpeg js,这样我就有希望检索特定像素的颜色 我试图通过下载位于上面链接的图像来解决这个问题。我也使用了其他方法,但它们都导致了各种不同的错误。不幸的是,其他带有类似错误的stackoverflow主题没有包含任何对我有帮助的内容。如果有人有更好的方式下载nodejs中的图像和/或更智能的方式获取像素的颜色,请让我知道Javascript 错误:enoint,使用nodejs下载.jpg时没有这样的文件或目录,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正在使用nodejs服务器和discordjs构建一个discord机器人,我正在尝试做的一件事是将.jpg discord链接(即)传递到npm模块jpeg js,这样我就有希望检索特定像素的颜色 我试图通过下载位于上面链接的图像来解决这个问题。我也使用了其他方法,但它们都导致了各种不同的错误。不幸的是,其他带有类似错误的stackoverflow主题没有包含任何对我有帮助的内容。如果有人有更好的方式下载nodejs中的图像和/或更智能的方式获取像素的颜色,请让我知道 //attempt t
//attempt to download
let 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);
});
};
//the actual function call
download(`[the path above]`, 'file.jpg', function(){
console.log('done');
});
//all that above so that I can hopefully do
let jpegData = fs.readFileSync('file.jpg');
let rawImageData = jpeg.decode(jpegData);
console.log(rawImageData);
//which will (in theory) allow me to inspect specific pixels.
预期结果:我希望文件被下载到这个程序的根目录中,以便它的第二部分可以将jpeg解码成我可以修改的内容。
编辑:我仍然收到相同的错误,所以这里是我更新的代码(我把代码片段放大了一点)
下载
是异步的。将最后三行移到whereconsole.log('done')
is.doe中,仍然得到一个错误:(您提供的链接上的图像是一个png,而不是jpg。我正在测试的是一个。jpgdownload
是异步的。将最后三行移到whereconsole.log('done')
is.doe中,仍然得到一个错误:(您提供的链接上的图像是png,而不是jpg。我测试的是.jpg
let 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);
});
};
someOtherFunction()
{
let pokePath = 'thisisthebiglinkabove'
console.log(pokePath);
download(pokePath, 'nameoffile.jpg', function(){
let jpegData = fs.readFileSync(filename);
let rawImageData = jpeg.decode('nameoffile.jpg');
console.log(rawImageData);
console.log('done');
});
},