问题描述
我正在开发我的第一个使用 Node.js 的项目,所以如果这里的某些内容听起来错误、愚蠢或很容易解释,请原谅我!老实说,我还没有真正征服异步编程的本质,这在 Node.js 中显然很常见......
今天,我正在使用 sharp 模块处理图像。最终的结果应该是经过Base64编码的图片。从技术上讲,这部分已经完成。我已经做到了这一点。我真正在苦苦挣扎的是 UPDATE `posts`
SET `comments` = JSON_SET(`comments`,'$."*".content','Lorem ipsum ...')
函数。我使用它来将结果返回到前端,当然,结束请求本身。第二部分确实有效。但是……无论我发送什么值,前端总是收到一个空数组。
res.end()
sharp(request.files.photo.data).jpeg({ mozjpeg: true }).toBuffer().then(data=> {
result = `data:image/jpeg;base64,${data.toString('base64')}`;
res.end(JSON.stringify(result));
}).catch(err => {
console.log(err);
process = "FILE_ERROR"
res.end(JSON.stringify(process));
});
函数似乎是异步的。正如我所说,我还没有理解它们,也没有达到它们看起来不那么可怕的地步。按照模块的文档,我发现我可以使用 toBuffer()
语句等待函数完成。我认为它确实为函数提供了将图像转换为缓冲区数据然后让程序对其进行编码所需的时间。所有这些都跟在 then()
函数之后。我已经说过 - 它确实结束了请求,但它永远不会有任何价值。它只给前端一个空数组。这不是很多信息。同样的事情发生在 res.end()
函数内部。这可能是什么原因?究竟需要做些什么才能解决这个问题?任何形式的帮助和建议都将受到欢迎和赞赏!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)