728x90
1. node.js 설치
설치 후, 터미널에서 아래 명령어를 입력해 node.js와 npm의 설치 버전 확인
* npm(node package manager)은 node.js 내부의 패키지 관리자로, node.js 설치 시 자동으로 같이 다운됨
node -v
npm -v
2. js 파일 실행 방법
node <파일명>
node test.js
3. 오픈소스 모듈 설치방법
npm install <패키지>
* 패키지 다운 전에 npmjs.com에서 패키지의 안정성을 검토하고 적용
npm install nodemailer
* 설치되는 모듈은 node_modules 폴더에 들어오게 됨
* package-lock.json 파일에는 설치된 모듈 정보가 json 파일 형식으로 정리되어 있음
4. 설치한 모듈 불러오기
require('<설치한 모듈명>')
const nodemailer = require('nodemailer')
5. express로 웹 서버 만들기
npm install express --save
const express = require('express');
const app = express();
const server = app.listen(3000, ()=> {
console.log('Start Server : localhost:3000');
})
6. html 파일 렌더링하기
npm install ejs --save
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs'); // ejs는 html 파일에서 javascript를 같이 쓸 수 있게 해주는 기능
app.engine('html', require('ejs').renderFile)
app.get('/', function (req, res) {
res.render('index.html')
})
7. DB연결하기
npm install mysql --save
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 10,
host : '',
user : '',
password : '',
database : ''
});
app.get('/db', function(req, res) {
pool.getConnection(function(err, connection) {
if (err) throw err; // not connected!
// Use the connection
connection.query('SELECT * FROM `TABLE` ', function (error, results, fields) {
res.send(JSON.stringify(results));
console.log(results);
// When done with the connection, release it.
connection.release();
// Handle error after the release.
if (error) throw error;
// Don't use the connection here, it has been returned to the pool.
});
});
})
8. 패키지 시작
npm init
- package name : 패키지 이름
- version
- description
- entry point : 메인 js 파일
- test command : test를 동작할 명령어
- git repository : 깃 주소
- keywords : 패키지를 공유했을 때, 사용자들이 검색 가능하도록 하는 키워드
- author : 저작권자
- license : 저작권
* 작성한 내용은 package.js 파일로 저장됨
9. 자신만의 module 만들기
- module 내보내기
module.exports = <함수 이름>;
module.exports = {
<내보내고 싶은 함수명>,
<내보내고 싶은 변수명>
}
- module 불러오기
require('<함수 이름>')
* .js 까지 입력하지 않아도 인식 가능
Reference
https://www.youtube.com/watch?v=toLDNN4FQv0&t=119s
반응형