发生了Node.js + jQuery错误

我想从数据库中检索数据,并通过数据生成html文件。 然后从JavaScript连接数据库我使用Node.js包“pg”,并使用jQuery的HTML文件。

但错误“jQuery需要一个带有文档的窗口”已经发生。

我的源代码如下

server.js

var pg = require('pg'); var http = require('http'); var $ = require('jquery'); var fs = require('fs'); var conString = "postgres://uname:@localhost:5432/shop"; var server = http.createServer(); server.on('request', doRequest); server.listen(3000, 'localhost'); function doRequest(request, response) { var client = new pg.Client(conString); client.connect(function(err) { if(err) { return console.error('could not connect to postgres', err); } client.query('...', function(err, result) { response.writeHead(200, {'Content-Type': 'text/html'}); if(err) { return console.error('error running query', err); } do something; response.end(); client.end(); }); fs.readFile('./index.html', function(err, data){ var body = data.toString(); console.log($(body).find('#hoge').html()); }); }); }; 

我尝试像下面的导入“jsdom”,但错误“jsdom不是一个函数”已经发生。

server.js(固定)

 var pg = require('pg'); var http = require('http'); var jsdom = require('jsdom'); var fs = require('fs'); var conString = "postgres://uname:@localhost:5432/shop"; var server = http.createServer(); server.on('request', doRequest); server.listen(3000, 'localhost'); function doRequest(request, response) { var client = new pg.Client(conString); client.connect(function(err) { if(err) { return console.error('could not connect to postgres', err); } client.query('...', function(err, result) { response.writeHead(200, {'Content-Type': 'text/html'}); if(err) { return console.error('error running query', err); } do something; response.end(); client.end(); }); fs.readFile('./index.html', function(err, data){ var window = jsdom.jsdom(data.toString()).parentWindow; var $ = require('jquery')(window); var body = data.toString(); console.log($(body).find('#hoge').html()); }); }); }; 

我安装了“jquery@3.2.1”和“jsdom@11.5.1”。

jQuery应该运行在浏览器中,而不是服务器。

使用服务器端模板引擎,例如帕格