(Node.js 07) url 모듈
w3schools Node.js 번역
The Built-in URL Module
내장 URL 모듈
- The URL module splits up a web address into readable parts.
- URL 모듈은 웹 주소를 읽을 수 있는 부분으로 분할한다.
- To include the URL module, use the
require()
method:- URL 모듈을 포함시키기 위해,
require()
메소드를 사용한다.
- URL 모듈을 포함시키기 위해,
var url = require('url');
- Parse an address with the
url.parse()
method, and it will return a URL object with each part of the address as properties.url.parse()
메소드를 사용해서 주소를 구문 분석(parse)하면, 주소의 각 부분이 속성으로 된 URL 객체를 반환한다.
var url = require('url');
var adr = 'http://localhost:8080/default.htm?year=2019&month=August';
var q = url.parse(adr, true);
console.log(q.host); // localhost:8080
console.log(q.pathname); // /default.htm
console.log(q.search); // ?year=2019&month=August
var qdata = q.query; // { year: 2019, month: 'August' }
console.log(qdata.month); // August
Node.js File Server
Node.js 파일 서버
- Now we know how to parse the query string, and in the previous chapter we learned how to make Node.js behave as a file server.
- 이제 query 문자열을 구문 분석(parse)하는 방법을 알고 있다.
- 그리고 이전 챕터에서 Node.js를 파일 서버로 작동시키는 방법을 배웠다.
- Let us combine the two, and serve the file requested by the client.
- 이 두 가지를 결합하고, 클라이언트가 요청한 파일을 제공하겠다.
- Create two html files and save them in the same folder as your node.js files.
- 두 개의 html 파일을 생성하고, node.js 파일과 동일한 폴더에 저장한다.
- summer.html
<!DOCTYPE html>
<html>
<body>
<h1>Summer</h1>
<p>I love the sun!</p>
</body>
</html>
- winter.html
<!DOCTYPE html>
<html>
<body>
<h1>Winter</h1>
<p>I love the snow!</p>
</body>
</html>
- Create a Node.js file that opens the requested file and returns the content to the client.
- 요청된 파일을 열고, 내용을 클라이언트로 반환하는 Node.js 파일을 생성한다.
- If anything goes wrong, throw a 404 error:
- 문제가 발생하면, 404 에러를 반환한다.
- demo_fileserver.js
var http = require('http');
var url = require('url');
var fs = require('fs');
http.createServer(function(req, res) {
var q = url.parse(req.url, true);
var filename = '.' + q.pathname;
fs.readFile(filename, function(err, data) {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/html' });
return res.end('404 Not Found');
}
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(data);
return res.end();
});
}).listen(8080);
- Remember to initiate the file:
- 파일을 실행한다.
$ node demo_fileserver.js
localhost:8080/summer.html:
Summer I love the sun!
localhost:8080/winter.html:
Winter I love the snow!
- If you have followed the same steps on your computer, you should see two different results when opening these two addresses:
- 이 두 주소를 열 때, 두 가지 다른 결과를 볼 수 있다.