Я хотел бы сделать функцию node.js, которая при вызове читает файл и возвращает содержимое. У меня возникают трудности с этим, потому что «fs» имеет значение. Таким образом, моя функция должна выглядеть следующим образом:Node.js возвращает результат файла
function render_this() {
fs.readFile('sourcefile', 'binary', function(e, content) {
if(e) throw e;
// I have the content here, but how do I tell people?
});
return /* oh no I can't access the contents! */;
};
Я знаю, что там может быть способ сделать это, используя не-evented IO, но я предпочел бы ответ, что позволяет мне ждать evented функций так что я не застрял снова, если я приду в ситуацию, когда мне нужно сделать то же самое, но не с IO. Я знаю, что это нарушает идею «все это событие», и я не планирую использовать ее очень часто. Однако иногда мне нужна функция утилиты, которая отображает шаблон haml на лету или что-то в этом роде.
Наконец, я знаю, что могу называть fs.readFile и кэшировать результаты на ранней стадии, но это не сработает, потому что в этой ситуации «исходный файл» может меняться «на лету».
Я бы скорее не сделал этого с обратными вызовами. В этом случае я пытаюсь написать функцию, которая отображает шаблон haml. На производственных серверах он должен кэшировать шаблон на сервере statup и отображать его при вызове, но на серверах разработки он должен читать файл каждый вызов в случае его изменения. Таким образом, мне нужна функция разработки, которая читает файл, но притворяется, что это не так. Обратные вызовы меняют сигнатуру типа моих функций, что очень затрудняет переход в производственный режим. – So8res