Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준
- g++ 업데이트
- InfluxDB
- gcc regex
- c++ 정규식
- centos pyhon 설치
- snmp test
- python subprocess
- subporcess path
- gcc 업데이트
- 1697
- snmp
- c3 축 없애기
- CentOS7
- telegraf
- selinux port 등록
- python popen
- c3 step graph
- c3 second
- c3 축 가리기
- semanage
- c3 초
- 정규식 컴파일
- 정규식 활용
- grafana dashboard
- regex_search
- linux시간으로 변경
- python os
- 정규식 문자열 출력
- influxdb 설치
Archives
- Today
- Total
리셋 되지 말자
URL 본문
URL 형식
http://tistory.com:3030/main?id=HTML&page=12
통신규칙 : // host(ip주소) : 포트번호 / 파일 ? 쿼리 스트링(query string)
URL 을 통해서 입력된 값 사용하기
- main.js
var http = require('http');
var fs = require('fs');
var app = http.createServer(function(request,response){
var url = request.url;
console.log(url); // url 값 확인
if(url == '/'){
url = '\\index.html';
}
if(url == '/favicon.ico'){
response.writeHead(404);
response.end();
return;
}
response.writeHead(200);
response.end(fs.readFileSync(__dirname + url));
});
app.listen(80);
- localhost/?id=HTML 로 접속 시 콘솔 출력
/?id=HTML
internal/fs/utils.js:269
throw err;
^
Error: ENOENT: no such file or directory, open 'c:\VSCodeFiles\JS\OpenTutorial/?id=HTML'
오류가 나지만, 임의로 입력한 url 정보가 출력되는것을 확인할 수 있다.
- query string 추출하기
var http = require('http');
var fs = require('fs');
var url = require('url') // url 모듈을 사용한다
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(request.url, true).query;
console.log(queryData); // 쿼리 스트링 값 확인
console.log(_url); // url 값 확인
...
url 모듈을 사용해 쿼리 스트링 값을 파싱한다. 결과는 아래와 같다.
[Running] node "c:\VSCodeFiles\JS\OpenTutorial\main.js"
[Object: null prototype] { id: 'HTML' }
/?id=HTML
internal/fs/utils.js:269
throw err;
^
Error: ENOENT: no such file or directory, open 'c:\VSCodeFiles\JS\OpenTutorial[object Object]'
여기서 객체가 추출되므로, console.log(queryData.id)를 출력하면 'HTML'이 출력된다.
URL의 query string을 전송
- response.end의 인자를 아래와 같이 변경
response.end(queryData.id);
- 'localhost/?id=HTML'로 접속한 화면
- 'localhost/?id=CSS'로 접속한 화면
url의 쿼리 스트링부분을 다르게 입력하여 다르게 동작하는, 클라이언트에게 다른 응답을 줄 수 있게 되었다.
'NodeJS > 생활코딩' 카테고리의 다른 글
Not found 오류 구현 (0) | 2020.09.09 |
---|---|
파일을 이용해 본문 구현 (0) | 2020.09.08 |
파일 읽기 (0) | 2020.09.08 |
동적 웹 만들기 (0) | 2020.09.08 |
웹서버 만들기 (0) | 2020.09.08 |
Comments