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 应该在浏览器而不是服务器中 运行。
使用服务器端模板引擎,例如哈巴狗
我想从数据库中检索数据并根据数据制作 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 应该在浏览器而不是服务器中 运行。
使用服务器端模板引擎,例如哈巴狗