2017-12-03 9 views
1

데이터베이스에서 데이터를 검색하고 데이터로 html 파일을 만들고 싶습니다. 그런 다음 javascript에서 데이터베이스를 연결하려면 Node.js 패키지 "pg"를 사용하고 html 파일을 만들려면 jQuery를 사용합니다.Node.js + jQuery 오류가 발생했습니다

하지만 "jQuery에 문서가있는 창 필요"오류가 발생했습니다.

내 소스 코드를 내가 아래에 있지만 오류 같은 가져 오기 "jsdom"를 시도

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는 함수가 아닙니다." (고정)

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()); 
    }); 
}); 
}; 

나는 "[email protected]"와 "[email protected]"를 설치.

답변

1

jQuery는 서버가 아닌 브라우저에서 실행되어야합니다.

서버 측 템플릿 엔진을 사용하십시오. pug

+0

jQuery를 오해했습니다. 감사. – tbt