Node.js

Node.js

로그인 후 이용하세요.

async await

@baealex
2020-02-13 16:30(Last Update: 2020-02-13 20:44)
var express = require('express');
var app     = express();
var http    = require('http').Server(app);

const fs    = require('fs');
const util  = require('util');

const readFile = util.promisify(fs.readFile);

app.get('/', async (req, res) => {
    var text = await readFile('hello.txt', 'utf8');
    res.json({
        text: text,
    })
})

http.listen(3000, () => {
    console.log('SERVER RUN IN PORT 3000');
});

await를 사용할 수 있는 메서드는 Promise로 반환되는 객체여야 한다. readFile 같은 경우는 그렇지 않으므로 위 코드에서는 promisify를 이용하여 변환하여 async await을 사용하고 있다. Node 11 이상에서는 promisify를 사용할 필요가 없다.

const fs = require('fs').promises;

위와같이 사용하여 그대로 fs.readFile에 async await을 적용하면 된다.

{"text":"hello world!"}

비동기 통신 별거 없구먼 😒