错误:写入EPIPE

我不断收到以下错误:

Error: write EPIPE at errnoException (net.js:901:11) at Object.afterWrite (net.js:718:19) 

当我运行以下function:

  router.route('/certificationService') .post(function (req, res) { var html = null, certificate = req.body.certificate, lang = req.body.lang, now = new Date(), dd = now.getDate(), mm = now.getMonth() + 1, yyyy = now.getFullYear(); if (dd < 10) dd = '0' + dd; if (mm < 10) mm = '0' + mm; switch (lang) { case 'da': var text = { title: 'Certifikat', first_line: 'Dette certifikat er givet til', second_line: 'for gennemførelsen af certificeringen', score: 'Score', date: 'D.', organization: 'Organisation' }; break; case 'en': var text = { title: 'Certificate', first_line: 'This certificate was given to', second_line: 'for the completion of certification', score: 'Score', date: 'The', organization: 'Organization' }; break; case 'no': var text = { title: 'Sertifikat', first_line: 'Dette sertifikatet er gitt til', second_line: 'gjennomføring av sertifisering', score: 'Score', date: 'D.', organization: 'Organisation' }; break; case 'de': var text = { title: 'Zertifikat', first_line: 'Dieses zertifikat wird eine für gegebene', second_line: 'die Umsetzung der zertifizierung', score: 'Ergebnis', date: 'D.', organization: 'Unternehmen' }; break; default: } var data = { firstname: certificate.user.profile.firstname, lastname: certificate.user.profile.lastname, organization: certificate.user.organization.name, module_name: certificate.name, medal: env + certificate.medal.image_path, score: certificate.score, date: dd + '-' + mm + '-' + yyyy, show_score: certificate.show_score, description: certificate.text, company_logo: env + req.body.organization.logo_file_name, company_name: req.body.organization.name, text: text }; // rendering the ejs file ejs.renderFile('./templates/certificate.ejs', {data: data}, function (err, result) { if (result) { html = result; } else { res.end('An error occurred: ' + err); console.log(err); } }); var options = { filename: './user_resources/certificate/' + certificate.user.id + '/' + certificate.name.replace(/ +?/g, '_') + '.pdf', format: 'A4', orientation: 'portrait', type: "pdf", timeout: 30000 }; pdf.create(html, options).toFile(function (err, res) { if (err) return console.log("This is where it goes wrong"+ err); console.log(res); }); var file = { originalname: certificate.name.replace(/ +?/g, '_') + '.pdf', path: './user_resources/certificate/' + certificate.user.id + '/' }; var media = new Media(file, './user_resources/certificate/' + certificate.user.id + '/'); var token = jwt.encode({ mediaObject: media }, require('../secret')()); res.status(200).json(token); }); 

所以我试图四处寻找解决办法,有人说:

确保你的机器上安装了imagemagick和graphicsmagick。

所以我使用以下方法安装它:

 $ sudo add-apt-repository ppa:dhor/myway $ sudo apt-get update $ sudo apt-get install graphicsmagick 

然而没有任何运气。

以下是我的module的依赖关系:

  var fs = require('fs'), jwt = require('jwt-simple'), pdf = require('html-pdf'), path = require('path'), ejs = require('ejs'), async = require('async'), DataTypes = require("sequelize"), PDFKit = require('pdfkitjs'), gm = require('gm').subClass({imageMagick: true}), ffmpeg = require('fluent-ffmpeg'), sys = require('util'), exec = require('child_process').exec, 

我真的希望你们中的一些人能够帮助我!

在选项对象中添加phantomjs的path

 var options = { phantomPath: __dirname + "/pathToNodeModules/phantomjs/bin/phantomjs", filename: './user_resources/certificate/' + certificate.user.id + '/' + certificate.name.replace(/ +?/g, '_') + '.pdf', format: 'A4', orientation: 'portrait', type: "pdf", timeout: 30000 };