fs.readFile работает асинхронно. Передавайте в getDataObj callback или юзайте промисы.
Примерно так:
const getDataObj = (cb) => {
const regex = /<email>(\D+?)<\/email>/g;
fs.readFile('uploads/dataset.xml', "utf-8", function(err, data) {
let m;
let result = "";
while ((m = regex.exec(data)) !== null) {
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
m.forEach((match, groupIndex) => {
if (groupIndex === 1) {
result += match + '\n'
}
});
}
return cb(result)
})
}
app.get('/', function(req, res) {
parser.getDataObj((message) => {
res.render(path.join(__dirname, 'views/index.pug'), {
pageTitle: 'Hey',
message: message
});
});
});