반응형
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
- 백준 알고리즘
- node.js
- react state
- 맥북 필수 앱
- 맥북 사용법
- 기술면접
- 리액트
- 아톰에디터
- 자바 인터뷰
- tech interview
- 자바 기술면접
- Java tech interview
- 자바 영어면접
- 생활코딩
- Express middleware
- 자바 면접
- 맥북 초보
- React props
- 자바 개발자
- React
- mysql
- 백준 단계별로 풀어보기
- AtomEditor
- react jsx
- 맥북 팁
- Node.js Express
- 백준
- 알고리즘
- jsx 문법
- 맥북 유용한 앱
Archives
- Today
- Total
song.log
[Node.js] 파일 읽기, 파일을 이용해 본문 구현, 콘솔에서의 입력값, 홈페이지 구현 본문
반응형
1. 파일 읽기
Node.js 에서 파일읽기를 익히기 위한 공식 사이트 Docs
https://nodejs.org/docs/latest-v11.x/api/fs.html
<sample.txt>
Everyone's talking about Node taking over the programming world and its great advantages. While all frameworks and languages come with some benefits, it's Node.js that takes over development in enterprises. The big question is...
Why Node.js became a standard for large-scale apps?
And in this article I will give you a high-level look on this subject.
It’s hard to escape the gravitational pull of JavaScript and its ubiquity on the modern Web. While it’s been offering frameworks and libraries for creating interactive, modern interfaces for many years now, it never did deploy any backend platform that could compete with other well-established languages. Node.js, however, the cool kid on the JS block, has come to offer a viable alternative, one that has since been embraced by multiple startups and enterprises.
<fileread.js>
var fs = require('fs');
fs.readFile('sample.txt','utf-8',function(err,data){
console.log(data);
});
여기서 기억할 것, cd .. 으로 상위 폴더로 이동 가능
2. 파일을 이용해 본문 구현
var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(_url, true).query;
var title = queryData.id;
if(_url == '/'){
title = 'Welcome';
}
if(_url == '/favicon.ico'){
return response.writeHead(404);
}
response.writeHead(200);
fs.readFile(`data/${title}`, 'utf8', function(err, description){
var template = `
<!doctype html>
<html>
<head>
<title>WEB1 - ${title}</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="/">WEB</a></h1>
<ul>
<li><a href="/?id=HTML">HTML</a></li>
<li><a href="/?id=CSS">CSS</a></li>
<li><a href="/?id=JavaScript">JavaScript</a></li>
</ul>
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.end(template);
})
});
app.listen(3000);
여기서 main.js를 실행시키고 data 폴더의 본문을 가져오려면 경로에 주의해야한다.
main.js는 20191217 폴더에 들어있기 때문에 명령 프롬프트창에서 실행할 때 상위 폴더에서 노드를 디렉토리 명과 함께 실행 시켜줘야하기 때문이다.
3. 콘솔에서의 입력값
Input - (Parameter:입력되는 정보의 형식/Argument:형식에 맞게 입력한 값)
콘솔에서 명령을 실행할 때 입력 값을 주는 것을 실행할 예정
조건문에 따라 다른 Output을 나오게끔 하는 것
Output - 출력
var args = process.argv;
console.log(args);
console.log('A');
console.log('B');
if(false){
console.log('C1');
}else{
console.log('C2');
}
console.log('D2');
node.js는 세번째부터 입력된 값을 나타낸다고 약속
var args = process.argv;
console.log(args[2]);
console.log('A');
console.log('B');
if(args[2] === '1'){
console.log('C1');
}else{
console.log('C2');
}
console.log('D2');
4. 홈페이지 구현
Web 링크를 열었을 때 나올 내용과 그 외의 링크를 눌렀을 때로 제어
var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(_url, true).query;
var pathname = url.parse(_url, true).pathname;
if(pathname === '/'){
if(queryData.id === undefined){
fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
var title = 'Welcome';
var description = 'Hello, Node.js';
var template = `
<!doctype html>
<html>
<head>
<title>WEB1 - ${title}</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="/">WEB</a></h1>
<ul>
<li><a href="/?id=HTML">HTML</a></li>
<li><a href="/?id=CSS">CSS</a></li>
<li><a href="/?id=JavaScript">JavaScript</a></li>
</ul>
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.writeHead(200);
response.end(template);
});
} else {
fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
var title = queryData.id;
var template = `
<!doctype html>
<html>
<head>
<title>WEB1 - ${title}</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="/">WEB</a></h1>
<ul>
<li><a href="/?id=HTML">HTML</a></li>
<li><a href="/?id=CSS">CSS</a></li>
<li><a href="/?id=JavaScript">JavaScript</a></li>
</ul>
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.writeHead(200);
response.end(template);
});
}
} else {
response.writeHead(404);
response.end('Not found');
}
});
app.listen(3000);
참조한 생활코딩 URL :
https://opentutorials.org/module/3549/21048
https://opentutorials.org/module/3549/21049
반응형
'DevLog > Node.js' 카테고리의 다른 글
[Node.js] 동기/비동기, 콜백함수, 패키지 매니저와 PM2 사용법 (0) | 2019.12.19 |
---|---|
[Node.js] 파일목록 알아내기, 글 목록 출력하기, 함수를 이용해서 정리 정돈하기 (0) | 2019.12.19 |
[Node.js] 웹서버 만들기, URL로 입력된 값 사용하기, 동적인 웹페이지 만들기 (1) | 2019.12.19 |
[Node.js] Window에서 cmd를 통해 node 사용하는 방법(Atom Editor 사용) (0) | 2019.12.17 |
[Node.js] 비주얼스튜디오 코드와 Node.js 설치 (0) | 2019.11.04 |
Comments