Node.js + jQuery 发生错误

Node.js + jQuery Error has occurred

我想从数据库中检索数据并根据数据制作 html 文件。 然后从 javascript 连接数据库,我使用 Node.js 包 "pg",并制作 html 文件,我使用 jQuery.

但是出现错误"jQuery requires a window with a document"。

下面是我的源码

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 is not a function"。

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 应该在浏览器而不是服务器中 运行。

使用服务器端模板引擎,例如哈巴狗