javascript - 节点获取图像,无论环境如何
问题描述
我正在尝试制作一个节点模块来绘制一个 PDF 文件,该文件需要在 Google Cloud Functions 的服务器端和 React 的客户端(create-react-app)中运行。PDF 的一部分是徽标 png。问题来自绘制徽标。
在服务器端,我可以这样做:
const getLogo = async (): Promise<Buffer> => {
return new Promise((resolve, reject) => {
fs.readFile(
path.join(__dirname, "../assets/logo.png"),
(err, data) => {
if (!err) {
return resolve(data);
}
return reject(err);
}
);
});
};
// later on:
const logo = await pdfDoc.embedPng(await getLogo());
但是如果在客户端运行,我会收到一个错误,fs.readFile
即不是函数。
在客户端,它就像导入图像一样简单:
import LOGO_PNG from '../assets/logo.png';
// and then:
const logo = await pdfDoc.embedPng(LOGO_PNG);
但是这两种方法都适用于服务器端和客户端。有没有一种不受环境影响的方法?
解决方案
推荐阅读
- encryption - 如何在传输时加密 LAN 或 Internet 中的数据?
- vuejs2 - vue router - 在哪里存储路由名称?
- node.js - 多个队列在一个通道中消耗
- javascript - 点击时替换 iFrame src?
- php - 403 Forbidden Access to this resource is denied on server-Laravel 5.7
- python - 需要帮助让代码通过网站循环
- linux - 当更多线程/进程占用内核时性能下降,即使并非所有内核都被使用
- libgdx - 粒子发射器类中的particleEmitter.start() 方法有什么作用?
- r - Shiny renderUI not Selectinput 自行停止更新
- javascript - 尝试构建一个模拟时钟,但它的时针不能正常工作,帮我解决时针代码