(Server) 쿼리스트링 : Express-URL을 이용한 정보 전달

호두파파·2021년 11월 10일
0

Node.js

목록 보기
25/25
post-custom-banner

쿼리 스트링

  • path: http://a.com/login에서 /login 부분
  • 하나의 path(라우터)에서 경우에 따라 다른 결과를 보여주기 위해서는 쿼리스트링이 사용된다.
  • 쿼리스트링은 어떤 애플레케이션에게 정보를 전달할 때 사용되는 URL에 약속되어 있는 국제적인 표준을 말한다.

    출처

Express의 query 객체의 사용

  • url내의 쿼리스트링을 가져오려면 req.query를 사용해야 한다.
  • 복수의 쿼리스트링을 가져오는 것도 가능하다.
app.get('/topic', function(req, res) {
  // url이 http://a.com/topic?id=1&name=hodoo 일때
  res.send(req.query.id+','+req.query.name); // 1, hodoo 출력 

query 객체의 활용

app.get('/topic', function(req, res) {
  	const topic = [
    	'javaScript is...',
    	'nodejs is...',
    	'express is...'
    ];
	const li = `
	<li><a href="/topic?id=0">js</a></li>
	<li><a href="/topic?id=1">nodejs</a></li>
	<li><a href="/topic?id=2">express</a></li>
	`
    // 선택한 링크에 따라서 다른 정보를 출력하는 동적인 애플리케이션의 기본 골격 
    res.send(li + '<br>' + topic[req.query.id]);
})

의미론적인 URL (semantic url)

  • 비전문가(사용자)에게 친숙한, (의미를 표헌하는) 구조적인 URL

semantic URL의 장점

  • 깔끔한 URL을 유지할 수 있다.
  • 사용자가 URL을 기억하기 쉽다.
  • 주요정보를 변수로 처리하지 않고 디렉토리인것처럼 다루므로, SEO에도 도움이 된다.

쿼리스트링이 아닌 path 방식의 URL의 사용

app.get('/topic/:id/:mode', function(req, res) {
  // 라우터 경로의 변경 /:id/:mode를 통해 path 방식 url 값을 가져올 수 있다. 
  var topic = [
		'javascript is...',
		'nodejs is...',
		'express is...'
	];
	var li = `
	<li><a href="/topic/0">js</a></li>
	<li><a href="/topic/1">nodejs</a></li>
	<li><a href="/topic/2">express</a></li>
	`
	res.send(li + '<br>' + topic[req.params.id] + req.params.mode);
	//path 방식을 사용하는 url의 경우 params를 통해서 값을 가져올 수 있음
})
profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.
post-custom-banner

0개의 댓글