Javascript 服务端PDFMake基本脚本返回错误

Javascript 服务端PDFMake基本脚本返回错误,javascript,node.js,npm,pdf-generation,pdfmake,Javascript,Node.js,Npm,Pdf Generation,Pdfmake,我正在开发一个Web应用程序,需要在该应用程序上使用pdfmakelibrary生成PDF。 我在客户端运行它(用于打印)时没有问题,但我无法使用node.js使它在服务器端工作(将PDF保存在服务器上) 我的服务器运行在linux和node.js和npm上。 我还使用sudo npm I pdfmake安装了pdfmake软件包。当使用npm ls时,模块似乎已正确安装,正如所列 然后我尝试运行一个简单的脚本来生成一个基本的pdf: var pdfmake = require('pdfmake

我正在开发一个Web应用程序,需要在该应用程序上使用
pdfmake
library生成PDF。 我在客户端运行它(用于打印)时没有问题,但我无法使用
node.js使它在服务器端工作(将PDF保存在服务器上)

我的服务器运行在
linux
node.js
npm
上。 我还使用
sudo npm I pdfmake
安装了
pdfmake
软件包。当使用
npm ls
时,模块似乎已正确安装,正如所列

然后我尝试运行一个简单的脚本来生成一个基本的pdf:

var pdfmake = require('pdfmake');


var fonts = {
        Roboto: {
                normal: 'fonts/Roboto-Regular.ttf',
                bold: 'fonts/Roboto-Medium.ttf',
                italics: 'fonts/Roboto-Italic.ttf',
                bolditalics: 'fonts/Roboto-MediumItalic.ttf'
        }
};

var PdfPrinter = require('../src/printer');
var printer = new PdfPrinter(fonts);
var fs = require('fs');

var docDefinition = {
        content: [
                'First paragraph',
                'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines'
        ]
};

var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf'));
pdfDoc.end();
执行(
sudo node pdftest.js
)时,此脚本返回以下错误:
错误:找不到模块“../src/printer”

对我来说,这个
/printer
文件夹应该位于
pdfmake
文件夹中,所以我不应该有这个错误

我试图通过再次运行
sudo npm I pdfmake
来重新安装软件包,但它没有改变任何东西

此外,这是我安装它时得到的:

/home/odroid
`-- pdfmake@0.1.36
  `-- linebreak@0.3.0
    `-- brfs@1.6.1
      `-- static-module@2.2.5
        `-- falafel@2.1.0
          `-- acorn@5.6.1

npm WARN enoent ENOENT: no such file or directory, open '/home/odroid/package.json'
npm WARN odroid No description
npm WARN odroid No repository field.
npm WARN odroid No README data
npm WARN odroid No license field.
有人已经有这个问题了吗?你能帮我吗?
谢谢

打印机的路径指定不正确。 如果使用
npm install
安装软件包,它将被放置在
node\u modules
文件夹中。您可以阅读有关软件包安装的更多信息

因此,为了运行您的代码,我将路径更改为:

var PdfPrinter = require('./node_modules/pdfmake/src/printer');
此外,请确保:

  • 你有
    字体
    文件夹,里面有机器人
  • 您已经创建了PDF文件夹(
    mkdir-pdfs
我没有触及其余部分,因此能够生成此文档:


打印机的路径指定不正确。 如果使用
npm install
安装软件包,它将被放置在
node\u modules
文件夹中。您可以阅读有关软件包安装的更多信息

因此,为了运行您的代码,我将路径更改为:

var PdfPrinter = require('./node_modules/pdfmake/src/printer');
此外,请确保:

  • 你有
    字体
    文件夹,里面有机器人
  • 您已经创建了PDF文件夹(
    mkdir-pdfs
我没有触及其余部分,因此能够生成此文档:


谢谢你,安东尼奥!我也注意到了。我认为节点模块安装在一个且唯一的文件夹中,但我知道它们实际上是在创建您所在的文件夹。因此,如果我在/home/中安装npm,它将创建/home/node_模块,并在另一个文件夹中执行相同的操作。现在更清楚了;)谢谢你,安东尼奥!我也注意到了。我认为节点模块安装在一个且唯一的文件夹中,但我知道它们实际上是在创建您所在的文件夹。因此,如果我在/home/中安装npm,它将创建/home/node_模块,并在另一个文件夹中执行相同的操作。现在更清楚了;)