2. Node.js 활용

2024. 11. 8. 07:06Node.js

Node js 활용
 
1. CONSOLE.CLEAR()
clear는 모든 입력값이 삭제된다.
즉, console.clear() 메서드는 현재 환경에서 가능한 경우, 콘솔에 기록된 메시지를 모두 지웁니다.

console.log('로딩중...')    //로딩중...
console.clear()            // clear는 모든 출력이 사라진다. 
console.log('---------------')

 
2. Console.info() : info를 보면 알수있듯이 말그대로 정보를 출력해준다. console.log와 같은 기능을 한다.
Console.warn() : warn은 그림처럼 이러한 노란색 경보 문구로 경보를 표시하고 싶다면 사용 하면 된다.

 
Console.error() : error는  'Img Error!'라는 에러를 console.error()로 출력한 결과이다. 에러 메세지와 에러가 발생한 코드의 라인 번호나 에러가 난 코드 등 에러에 관한 정보를 담고 있다.

 

//개발시 콘솔 사용법
console.log('개발 , 디버그') // 개발 , 디버그
console.info('정보') //정보
console.warn('경고')  //경고
console.error('에러')  // 에러
console.log('---------------')

 
2. Assert() : assert는 assert에 true인 인자가 주어지면 출력되지 않는다. 그와 반대로 false값인 인자가 주어지면 메세지가 출력된다

//assert() : 조건을 만족하지 않으면 에러 메시지 출력
console.assert(2 == 2, '두 값이 달라요!') //true이므로 아무 출력이 되지 않는다.
console.assert(2 == 3, '두 값이 달라요!') //Assertion failed: 두 값이 달라요!
console.log('---------------')

 
3.
Console.table() : table은 객체를 표 형태로 출력한다.
Console.dir() : 객체를 출력할때 사용한다.
showHidden : true일 경우 객체의 non-enumrable 열거 불가능한 값이나 symbol 값들도 출력한다. 기본값은 false이다.
depth: 출력 시 객체의 깊이 설정을 할 수 있다. 아래와 같은 복잡한 객체 구조를 출력할 경우에 용이하다.

// 객체 출력
const user = {userid: 'apple', name: '김사과', age: 20, compay: {name: 'SK', addr: '서울 중구'}}
console.log(user)
/*
{
  userid: 'apple',
  name: '김사과',
  age: 20,
  compay: { name: 'SK', addr: '서울 중구' }
}
*/
console.table(user)
-->
┌─────────┬──────┬─────────────┬──────────┐
│ (index) │ name │ addr        │ Values   │
├─────────┼──────┼─────────────┼──────────┤
│ userid  │      │             │ 'apple'  │
│ name    │      │             │ '김사과'  │
│ age     │      │             │ 20       │
│ compay  │ 'SK' │ '서울 중구'  │          │
└─────────┴──────┴─────────────┴──────────┘
console.dir(user, {showHidden:true, depth:0})
-->
// depth가 0이므로 detail의 value가 [Object]로 표시된다.
{ userid: 'apple', name: '김사과', age: 20, compay: [Object] }
console.log('---------------')

 
4. Trace() : 해당 코드의 호출 위치를 출력해준다.
어느 경로로 함수가 불러졌는지 라인 넘버와 파일 위치 등이 출력된다.

// trace 사용 
function func1(){
    func2()
}


function func2(){
    func3()
}

function func3(){
    console.log('func3()실행')
    console.trace()
}

func1()   //func3()실행
    // trace
    // at func3 (C:\hong\Web\Node.js\10_console.js:37:13)
    // at func2 (C:\hong\Web\Node.js\10_console.js:32:5)
    // at func1 (C:\hong\Web\Node.js\10_console.js:27:5)
    // at Object.<anonymous> (C:\hong\Web\Node.js\10_console.js:40:1)
    // at Module._compile (node:internal/modules/cjs/loader:1546:14)
    // at Object..js (node:internal/modules/cjs/loader:1689:10)
    // at Module.load (node:internal/modules/cjs/loader:1318:32)
    // at Function._load (node:internal/modules/cjs/loader:1128:12)
    // at TracingChannel.traceSync (node:diagnostics_channel:315:14)
console.log('---------------')

 
5.
1) console.count :
함수가 몇번 호출되었는지 출력한다.
2) console.countReset :
countReset은 count를 초기화시키는 기능을 한다.

#1.counter.js 파일 

let count = 0

function increase(){
    count++
}

function getCount(){
    return count
}

module.exports.getCount = getCount
module.exports.increase = increase
console.log('--------------------------')

###2.counter.mjs 파일--------------------
let count = 0

export function increase(){
    count++
}

export function getCount(){
    return count
}
---------------------------------------------

###3.module.mjs 파일---------------------------
import * as counter from "./counter.mjs"


counter.increase()
counter.increase()
counter.increase()
console.log(counter.getCount())
---------------------------------------------------
##4.module.js파일
const counter = require(`./counter`)  //require는 import와 비슷한 개념
counter.increase()
counter.increase()
counter.increase()
-->
3
console.log('--------------------------')
console.log(counter.getCount())

 
6. Path
Path는 경로를 확인 하기위한 용도이다
 
1)

const path = require('path')

console.log(__dirname)  //현재 디렉코리
console.log(__filename)  //현재 파일
console.log('-------------------------')
-->
C:\hong\Web\Node.js
C:\hong\Web\Node.js\test.js
-------------------------

 
2)

const path = require('path')

console.log(path.sep)             // \ 출력 
console.log(path.delimiter);      //  ; 출력
console.log('-------------------------')

 
3)

const path = require('path')
console.log(path.basename(__filename)) //파일 이름만 추출
console.log(path.basename(__filename, '.js')) // 확장자를 제외하구 추출
console.log(path.dirname(__filename))       // 디렉토리만 추출
console.log(path.extname(__filename))      // 파일 확장명만 추출
console.log('-------------------------')
-->
test.js
test
C:\hong\Web\Node.js
.js
-------------------------

 
4)

const path = require('path')

const parsed = path.parse(__filename)
console.log(parsed)               //
// {
//     root: 'C:\\',
//     dir: 'C:\\hong\\Web\\Node.js',
//     base: 'test.js',
//     ext: '.js',
//     name: 'test'
//   }
console.log(parsed.dir)           // C:\hong\Web\Node.js
console.log(parsed.base)         // test.js
console.log('-----------------')

 
5)

const path = require('path')

const parsed = path.parse(__filename)
const str = path.format(parsed)
console.log(str)    // C:\hong\Web\Node.js\test.js
console.log(`isAbsolute: `, path.isAbsolute(__dirname))  // isAbsolute:  true
console.log(`isAbsolute: `, path.isAbsolute(`./12_path.js`))  // isAbsolute:  false

 
6)
File.js :
파일 이름을 변경할때 사용한다.

const fs = require('fs')

// 동기식 (Sync 붙어있으면)
// 동기식 : 무조건 에러처리를 해줘야한다.
//try catch 문

//1.우선 test.txt 파일을 생성후 테스트한다.
//2.그러면 new_test.txt로 변경되있다

try{
    fs.renameSync('./test.txt', './new_test.txt')
} catch(e){
    console.log(e)
}
-->
test.txt -> new_test.txt로 변경

 
7)

const fs = require('fs')

// 비동기식
// 별도의 에러처리가 필요하지 않음(null값 출력 후 재실행후 )

// promise로 사용
fs.rename('./test.txt', './new_test.txt', (error) => {
    console.log(error)
})
-->
test.txt -> new_test.txt로 변경

 
8)

const fs = require('fs')
// promises로 사용
fs.promises
    .rename('./new_test.txt', './test.txt')
    .then(() => console.log('완료'))
    .catch(console.error)
-->
new_test.txt -> test.txt로 변경

 
9)

const fs = require('fs')

// 파일 읽기
fs.readFile('./test.txt', 'utf-8', (error, data) => {
    if(data){
        console.log(data)
    }else{
        console.log(error)
    }
})
-->
test.txt파일에 있는 내용 출력

 
7.
 
readFile : 파일을 읽어준다
writeFile : 파일을 출력해준다
appendFile : 파일을 추가 출력한다
copyFile :  복사한다
mkdir   : 디렉토리를  생성해준다
readdir  : 현재 디렉토리에 있는 파일(폴더) 리스트를 반환해준다
 
1) readFile

const { mkdir } = require("fs")

const fs = require('fs').promises

//파일 읽기
fs.readFile('./test.txt','utf-8')
    .then((data) => console.log(data))
    .catch(console.error)
-->
test.txt에 있는 내용 출력
안녕하세요 Node.js

 
2) WriteFile

const { mkdir } = require("fs")

const fs = require('fs').promises

// 파일 출력
fs.writeFile('./write.txt', 'Hello Node.js 파일 출력입니다.')
    .catch(console.error)
-->
write.txt에 내용은 'Hello Node.js 파일 출력입니다.'라는 파일 생성

 
3) AppendFile

const { mkdir } = require("fs")

const fs = require('fs').promises

// 파일 추가 출력
fs.appendFile('./write.txt', '\r\n 추가로 글을 입력합니다.')
    .catch(console.error)
-->
write.txt 에 내용이 추가된다. 
'Hello Node.js 파일 출력입니다.
 추가로 글을 입력합니다.'

 
4) CopyFile

const { mkdir } = require("fs")

const fs = require('fs').promises

//복사
fs.copyFile('./test.txt', './new_test.txt')
    .catch(console.error)
-->
new_test.txt 복사 파일로 new_test.txt 파일이 생성된다.

 
5) Mkdir

const { mkdir } = require("fs")

const fs = require('fs').promises

//디렉토리 생성
fs.mkdir('sub')
    .catch(console.log)
    
-->
sub로 폴더가 생성된다.

 
6) Readdir

const { mkdir } = require("fs")

const fs = require('fs').promises

// 현재 디렉토리에 있는 파일(폴더) 리스트를 반환
fs.readdir('./')
    .then(console.log)
    .catch(console.error)
-->
./ 폴더에 있는 파일을 모두 출력한다.
[
  'test.html',         'test.js',
  'test.txt',          'write.txt'
]

 
8.
HTTP.mjs

.mjs는 ECMAScript(ES)를 사용하고 잇음을 나타내는 확장명
    import, export 구문을 사용할 수 있음

 
1. package.json 파일에 

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon 15_http.mjs"
  },

2. 추가후 Command prompt 열어서 npm start 해서 크롬에 http://127.0.0.1:3000/ 치면 Hello World 가 출력된다.

res.end('Hello World!\n');

 
 
 

728x90
LIST

'Node.js' 카테고리의 다른 글

Node.js의 로직 순서  (0) 2024.11.12
Node.js 활용2  (0) 2024.11.11
Node.js POST 방식  (0) 2024.11.11
3. Node.js 활용2  (12) 2024.11.09
Node.js 사용법  (10) 2024.11.07