모양은 매~~우 이상하지만 검색 기능을 넣어봤다.
해당 검색은
이렇게 콤보박스로 어느 카테고리에서 검색 할 지 알려준다.
나는 search.js라는 것을 만들어서 사용하였다.
이 코드는 post 방식을 이용해서 검색 정보를 받은 후 table 형식으로 보여준다.
const qs = require('querystring');
const topic = require('./topic.js')
const template= require('./template.js')
exports.search = function(request, response){
var body = '';
request.on('data',function(data){
body = body + data ;
});
request.on('end',function(){
var post = qs.parse(body)
if(post.cat==='title'){
var cat = post.cat
} else if(post.cat==='description'){
var cat = post.cat
} else if(post.cat ==='author'){
var cat = 'name'
} else {
var cat = 'concat(title, description)'
}
db.query(`select topic.id, title, description, name, profile from topic left join author on topic.author_id=author.id`, function(error2,topics){
if (error2) {
throw error2;
}
db.query(`select topic.id, title, description, name, profile from topic left join author on topic.author_id = author.id where ${cat} like '%${post.keyword}%'`, function(error, results){
if (error){
throw error;
}
var title = 'Search Results'
var list = template.list(topics)
var html = template.HTML(title, template.table2(results), list,'')
response.writeHead(200);
response.end(html)
});
});
});
}
그런데 어찌어찌 구현을 하고 나니 검색은 post방식보다 get 방식이 더 좋다고 한다.
구글링을 좀 해보니 검색 결과를 copy paste 하기 좋아서 그런 것 같다.
get 방식은 위 코드에서 데이터 모으는 코드를 지운 후 url의 querydata를 parse하는 것을 넣으면 될 것 같다.
'생활코딩 > node.js-mysql' 카테고리의 다른 글
페이지 기능구현 해보기(실패) (0) | 2021.01.14 |
---|---|
node.js - mysql 수업을 마치며/ 더 해보면 좋을 것들 (0) | 2021.01.12 |
sanitize-html (0) | 2021.01.12 |
SQL injection (0) | 2021.01.12 |
저자 관련 기능 구현 (0) | 2021.01.12 |