Node.js de fs.readFileSync () para fs.readFile ()

Estou tentando entender meu problema de forma síncrona vs assíncrona no Node.js, em particular para ler um arquivo html.

Em um manipulador de solicitações, a versão síncrona que estou usando, que funciona, é a seguinte:

var fs = require("fs");
var filename = "./index.html";
var buf = fs.readFileSync(filename, "utf8");

function start(resp) {
    resp.writeHead(200, {"Content-type":"text/html"});
    resp.write(buf);
    resp.end();
    }

exports.start=start; 
Qual seria a versão usando readFile () ??Entendo que o readFile é assíncrono, então, teoricamente, devo esperar que o arquivo inteiro seja lido antes de renderizá-lo. Por isso, devo introduzir um addListener? Eu posso estar confundindo coisas diferentes.

Edit: Eu tentei refatorar o código assim:

var fs = require("fs");
var filename = "./index.html";
function start (resp) {
    resp.writeHead(200, {"Content-Type":"text/html"});
    fs.readFile(filename, "utf8", function (err, data) {
        if (err) throw err;
        resp.write(data);
        });
    resp.end();
    }

Recebo uma página em branco, acho que é porque deve esperar que todos os dados tenham sido lidos, antes de resp.write (data), como sinalizo isso?

questionAnswers(2)

yourAnswerToTheQuestion