English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Node.js 예제:우리는 다음을 사용할 것입니다Node.js기본 개념, fs 모듈, mysql 모듈, http 모듈, url 모듈, JSON 파싱 등의 예제를 소개합니다.
이 Node.js 강의에서 소개할 Node.js 예제 목록은 다음과 같습니다:
모듈/주제 | 예제 |
기본 |
|
파일 시스템 |
|
MySQL |
|
URL |
|
JSON |
|
HTTP |
|
다음은 간단한Node.js 예제,컨솔에 메시지를 출력하는 데 사용됩니다。
console.log("Hi there! This is Node.js!")
Calculator.js
// 두 수의 합을 반환합니다 exports.add = function(a, b) { return a+b; }; // 두 수의 차를 반환합니다 exports.subtract = function(a, b) { return a-b; }; // 두 수의 곱을 반환합니다 exports.multiply = function(a, b) { return a*b; };
var calculator = require('.';/calculator'); var a =10, b =5; console.log("Addition : ");+calculator.add(a, b)); console.log("Subtraction : ");+calculator.subtract(a, b)); console.log("Multiplication : ");+calculator.multiply(a, b));
readFileExample.js
// fs 모듈을 가져옵니다 var fs = require('fs'); var data = 'Learn Node FS module'; // 파일 이름, 내용, 콜백 함수를 가진 writeFile 함수 fs.writeFile('newfile.txt', data, function(err) { if (err) throw err; console.log('File is created successfully.'); });
터미널이나 명령 프롬프트에서 node 명령어를 사용하여 프로그램을 실행하세요:
터미널 출력
$ node createFileExample.js File is created successfully.
이 파일은 '학습 노드 FS 모듈'을 포함한 예제 node.js 프로그램 옆에 생성되어야 합니다。
// 파일 시스템 모듈을 포함합니다 var fs = require('fs'); // sample.html 파일을 읽습니다 fs.readFile('sample.html', // 파일을 읽을 때 호출되는 콜백 함수 function(err, data) { if (err) throw err; // 데이터는 파일 내용을 포함한 버퍼입니다 console.log(data.toString('utf-8'));8)) });
터미널이나 명령 프롬프트에서 node 명령어를 사용하여 프로그램을 실행하세요:
터미널 출력
$ node readFileExample.js <html> <body> <h1>Header</h1> <p>I have learnt to read a file in Node.js.</p> </body> </html>
node.js 예제 프로그램 옆에 'sample.txt'라는 파일이 있는지 확인하세요。
// fs 모듈을 가져옵니다 var fs = require('fs'); // 이름이 'sample.txt'인 파일을 삭제합니다 fs.unlink('sample.txt', function(err) { if (err) throw err; // 에러가 없으면 파일이 성공적으로 삭제되었습니다 console.log('File deleted!'); });
터미널이나 명령 프롬프트에서 node 명령어를 사용하여 프로그램을 실행하세요:
터미널 출력
$ node deleteFile.js File deleted!
파일이 성공적으로 지워졌습니다。
이 예제에서는 'Hello!' 내용을 텍스트 파일 sample.txt에 쓰겠습니다。
// 파일 시스템 모듈을 포함합니다 var fs = require('fs'); var data = "Hello !" // fs.writeFile('sample.txt',data, // 파일에 쓰고 호출된 콜백 함수 function(err) { if (err) throw err; // 에러가 없으면 console.log("데이터가 파일에 성공적으로 기록되었습니다.") });
위의 프로그램이 터미널에서 실행될 때만,
프로그램 출력
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node nodejs-write-to-file-example.js 데이터가 파일에 성공적으로 기록되었습니다.
// mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password" // 대응하는 비밀번호 }); // 데이터베이스에 연결합니다。 con.connect(function(err) { if (err) throw err; console.log("Connected!"); });
selectFromTable.js MySQL SELECT FROM 조인 예제
// Node.js MySQL SELECT FROM 조회 예제 // mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스와의 연결을 설정합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("SELECT * FROM students", function(err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 console.log(result); }); });
selectFromWhere.js
// mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스와의 연결을 설정합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("SELECT * FROM students where marks>90", function (err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 console.log(result); }); });
위의 .js 파일 위치에서 터미널을 엽니다. 그런 다음 selectFromWhere.js Node.js MySQL 예제 프로그램을 실행하세요。
AscOrderExample.js
//mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스와의 연결을 설정합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("SELECT * FROM students ORDER BY marks", function (err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 console.log(result); }); });
위의 Node.js MySQL ORDER BY 예제 프로그램을 실행하세요。
// mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스와의 연결을 설정합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("INSERT INTO students (name,rollno,marks) values ('Anisha',12,95)", function (err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 console.log(result); }); });
터미널에서 Node.js MySQL 프로그램 위에 실행합니다。
UpdateRecordsFiltered.js-MySQL 테이블의 레코드를 업데이트합니다
// mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스와의 연결을 설정합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("UPDATE students SET marks=84 WHERE marks=74", function(err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 console.log(result); }); });
위 프로그램을 터미널에서 실행합니다
터미널 출력
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node UpdateRecordsFiltered.js OkPacket { fieldCount: 0, affectedRows: 3, insertId: 0, serverStatus: 34, warningCount: 0, message: '(Rows matched: 3 Changed: 3 Warnings: 0', protocol41: true, changedRows: 3 }
테이블의 하나 또는 여러 속성에 필터를 적용한 경우, 지정된 테이블에 DELETE FROM 쿼리를 실행합니다。
// mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스에 연결합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("DELETE FROM students WHERE rollno>10", function(err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 console.log(result); }); });
deleteRecordsFiltered.js 실행-터미널 출력
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node deleteRecordsFiltered.js OkPacket { fieldCount: 0, affectedRows: 6, insertId: 0, serverStatus: 34, warningCount: 0, message: '', protocol41: true, changedRows: 0}
결과 집합의 레코드를 배열과 레코드의 속성으로 접근할 수 있는 DOT(.) 연산자를 사용할 수 있습니다.
// Node.js MySQL 결과 객체 예제 // mysql 모듈을 포함합니다 var mysql = require('mysql'); // 필요한 상세 정보를 가진 연결 변수를 생성합니다 var con = mysql.createConnection({ host: "localhost", // mysql 서버의 IP 주소 user: "arjun", // mysql 데이터베이스의 사용자 이름 password: "password", // 대응하는 비밀번호 database: "studentsDB" // 지정된 데이터베이스를 사용합니다 }); // 데이터베이스와의 연결을 설정합니다。 con.connect(function(err) { if (err) throw err; // 연결이 성공하면 con.query("SELECT * FROM students", function(err, result, fields) { // 위 쿼리 실행 중에 어떤 에러가 발생하면 에러를 표시합니다 if (err) throw err; // 에러가 없으면 결과를 얻습니다 // 결과의 모든 행을 반복합니다 Object.keys(result).forEach(function(key) { var row = result[key]; console.log(row.name) }); }); });
터미널에서 위 프로그램을 실행합니다
터미널 출력
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node selectUseResultObject.js John Arjun Prasanth Adarsh Raja Sai Ross Monica Lee Bruce Sukumar
// url 모듈을 포함합니다 var url = require('url'); //localhost:8080/index.php?type=page&action=update&id=',5221'; var q = url.parse(address, true); console.log(q.host); //반환 'localhost:8080 console.log(q.pathname); //반환/index.php //returns '?type=page&action=update&id=',5221" var qdata = q.query; // 반환하는 객체: {타입: 페이지, 작업: 'update', id='5221} console.log(qdata.type); //반환 "페이지" console.log(qdata.action); //반환 "업데이트" console.log(qdata.id); //반환 " 5221"
터미널 출력
$ node urlParsingExample.js localhost:8080 /index.php ?type=page&action=update&id=5221 page update 5221
아래 예제는 JSON.parse() 함수를 사용하여 JSON 객체에서 요소에 접근하는 방법을 보여줍니다.
// JSON 데이터 var jsonData = '{"persons":[{"name":"John","city":"New York"},{"name":"Phil","city":"Ohio"}]}'; // JSON 분석 var jsonParsed = JSON.parse(jsonData); // 요소 접근 console.log(jsonParsed.persons[0].name);
nodejs 실행-parse-json.js의 터미널 출력
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node nodejs-parse-json.js John
Node.js 예제 – HTTP 헤더와 메시지를 포함한 응답을 준비하는 HTTP Web 서버
// 파일에 http 모듈을 포함합니다 var http = require('http'); // 서버 생성 http.createServer(function (req, res) { // http 헤더 // 200-메시지 확인 // html 내용을 응답으로 사용하려면,“ Content-Type”이어야 합니다“ text / html” res.writeHead(200, {'Content-Type': 'text/html'}); res.write('Node.js says hello!'); //고객에게 응답 작성 res.end(); //응답 종료 }).listen(9000); //서버 객체는 포트9000에서侦听
서버 실행
$ node httpWebServer.js
브라우저를 엽니다. URL“ http://127.0.0.1:9000/”,이를 통해 우리의 웹 서버에 요청을 보냅니다。