node.js - 如何在节点 js 中读取图像文件?
问题描述
我正在尝试读取图像和文本文件并aws s3 bucket
使用 nodejs上传fs module
。我没有使用任何快速服务器,而是调用 aws-sdk 并将项目上传到aws-s3
.
这是我的项目结构的样子
在 s3.js 内部,我正在尝试读取 2.png 和 friends.json 文件 s3.js
const fs = require('fs');
const file = fs.readFileSync('../public/2.png', (err)=>console.log(err.message));
但是这个抛出和错误
Error: ENOENT: no such file or directory, open '../public/2.png'
可能出了什么问题?
解决方案
总是可以尝试绝对路径而不是相对路径并添加编码:
const fs = require('fs')
const path = require('path')
const image = path.join(__dirname, '../public/2.png')
const file = fs.readFileSync(image, {encoding:'utf8'})
也可以使用带有 Promise 的upng-js
const png = require("upng-js")
const fs = require('fs')
async function pngCode(img) {
try {
return png.decode(await fs.promise.promisify(fs.readFile)(img)
} catch (err) {
console.error(err)
}
}
pngCode('.../public/2.png')
我的手机上没有测试过任何代码。
推荐阅读
- charts - SSRS 图表 - 水平而不是垂直
- javascript - 带有后备网址的历史记录 back()
- python-2.7 - 如何使用机器人测试框架从创建的会话中获取访问令牌
- java - 将 for 循环示例转换为 while 循环
- json - JSON 错误:试图从 JSON 结果中获取信息
- javascript - 即使事件未执行,事件侦听器也会立即触发
- javascript - 使用 AngularJS 将所选值绑定到多选 ListboxFor 控件
- android - Firestore:库中的包引用无效
- node.js - Azure Active Directory 动态回复 url
- java - Java8:使用 IntStream 作为自定义收集器的供应商参数