我正在使用html-pdf npm模块创建一个pdf文件,一切都在我的本地环境(mac,windows)中正常工作。但是当我们在我们的amazon ec2服务器中部署相同的代码时,html-pdf的create()无法创建文件,也没有给我任何错误。我几乎通过异常处理,绝对路径等尝试了所有可能的方法。它们都不起作用。请有人帮我这个。我的代码是
function generatePdf(content, options, callback) {
var fileName = new Date().getTime() + Math.random() + '.pdf';
pdf.create(content, options).toFile('../uploads/' + fileName, function(error, response) {
if (error) {
callback(error);
} else {
callback({
fileName: fileName,
filePath: response.filename
});
}
});
}
此处错误为{},响应为{}
答案 0 :(得分:2)
SYAM,
上述代码完全没有问题。但是,为什么html-pdf lib在pdf.create(...)。toFile中没有抛出任何错误或创建文件的原因是由于您环境中安装的html-pdf版本中的错误。我们可以通过检查
来确定它 npm list html-pdf
如果返回类似npm ERR的内容!代码1然后做
npm uninstall html-pdf and then do again
npm install html-pdf
并重复上述步骤以确保当前安装的html-pdf版本中没有错误。
答案 1 :(得分:0)
html-pdf是一个npm库,用于将HTML文件转换为pdf。
使用以下命令全局安装html-pdf:
npm install -g html-pdf
答案 2 :(得分:0)
我遇到了同样的问题,在Google上搜索后,按照StackOverflow和GitHub线程上的帖子进行搜索对我来说并不可行。
后来我意识到并检查了Phantomjs,并在服务器上丢失了它。
我在Ubuntu服务器上使用以下命令进行安装。
sudo apt-get install phantomjs
如果这对您有用,请尽情玩乐。
答案 3 :(得分:0)
我遇到了同样的问题。我们正在使用docker进行部署。即“ node:12.17.0-alpine”
我在Dockerfile上添加了以下内容
ENV PHANTOMJS_VERSION=2.1.1
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=$PATH:/home/node/.npm-global/bin
RUN apk update && apk add --no-cache fontconfig curl curl-dev && \
cd /tmp && curl -Ls https://github.com/dustinblackman/phantomized/releases/download/${PHANTOMJS_VERSION}/dockerized-phantomjs.tar.gz | tar xz && \
cp -R lib lib64 / && \
cp -R usr/lib/x86_64-linux-gnu /usr/lib && \
cp -R usr/share /usr/share && \
cp -R etc/fonts /etc && \
curl -k -Ls https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-${PHANTOMJS_VERSION}-linux-x86_64.tar.bz2 | tar -jxf - && \
cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
答案 4 :(得分:0)
一些可以用来调试问题的东西。
__dirname + '/uploads'
代替'../uploads/'
fs
模块创建可写流答案 5 :(得分:0)
似乎所有的问题都在这一行。评论它会使错误消失:
# System default
openssl_conf = default_conf
/etc/ssl/openssl.cnf