Это не объясняет проблему - в модуле что-то не так.
res.end() ничему не мешает, если его поставить в правильное место. Вот эта функция, положенная рядом, работает правильно
function api(req, res) {
tmp.file({keep: true}, function (err, path, fd, cleanupCallback) {
console.log(path);
console.log(fd);
console.log(err);
var oS = fs.createWriteStream(null, {fd: fd});
req.pipe(oS);
});
req.on('end', function() {
res.end('OK');
});
}
А если её вынести в отдельный модуль (не меняя ни буквы) - не работает.
Ну да шут с ней.