Указанный пакет jspdf
является библиотекой только для клиента и должен использоваться в среде браузера для правильной работы.
Описание ясно на домашней странице пакета:
Библиотека для создания PDF-файлов в клиентском JavaScript.
Теперь причина в наличии пакета npm заключается в том, что такие упаковщики, как Webpack и Browserify, могут загружать пакеты npm и преобразовывать их в соответствующий скрипт, совместимый с браузером. require()
не определен в среде браузера и не будет работать без этих упаковщиков.
Итак, либо выберите библиотеку, которая поддерживает NodeJS, например
https://www.npmjs.com/package/pdfkit или перенесите код, связанный с PDF, в браузер и работайте с ним.
EDIT:
https://github.com/MrRio/jsPDF/issues/566#issuecomment-382039316
показывает, что вы можете использовать библиотеку в NodeJS env, внеся следующие изменения.
В этом случае вам нужно определить глобальные переменные перед require
использованием модуля.
global.window = {document: {createElementNS: () => {return {}} }};
global.navigator = {};
global.btoa = () => {};
var fs = require('fs');
var jsPDF = require('jspdf');
var jsPDFTable = require('jspdf-autotable');
var app = require('express')();
app.get('/', function(req, res)
{
var doc = new jsPDF();
// ...
}