Error: write EPIPE on sendFile()?

Error: write EPIPE on sendFile()?

我正在使用 html-pdf 模块生成 pdf,使用以下代码:

var ejs = require('ejs');
var fs = require('fs');
var pdf = require('html-pdf');

var build = function (template, data) {
    var html = ejs.compile(fs.readFileSync(template, 'utf8'));
    html = html(data);

    return html;
}

pdf.create(build('views/print_templates/pm_export_pdf.ejs',
                {rows:resolve(rows, user_rows, table_rows,
                 subproject_rows, milestone_rows, release_rows)}), pdfconfig)
.toFile(function (err, pdf) {
    if (err)
        return console.log(err); 

    res.sendFile(pdf.filename);
});

PDFconfig 是 html-pdf 的配置变量。 resolve 是我自己的 db resolve 函数,在这个故事中不是很相关。

当我在我的 MacBook Pro 上 运行 本地 OSX 10.10 时,这就像一个魅力。但是当我在我的服务器(centOS)上 运行 时,我得到以下错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: write EPIPE
    at errnoException (net.js:904:11)
    at Object.afterWrite (net.js:720:19)

这可能与权限有关吗?我不太确定我做错了什么..

我运行以下版本:

供将来使用:

我想我必须重建我的节点模块。我想我不小心将节点模块文件夹复制到了 centOS 上的测试服务器,而 phantomjs 已经为 OSX 构建了它的依赖项。我仍然不确定它向记者抛出的错误是怎么回事,但它已经修复了。

还要确保您安装了 FreeType 和 fontconfiglib。