То, что вы просите, - это синхронное (или блокирующее) выполнение, и это действительно противоречит дизайну и духу node.js.
Узел, как и JavaScript, является однопоточным. Если у вас есть код блокировки, то весь процесс останавливается .
Это означает, что вы должны использовать обратные вызовы для всего, что займет много времени (например, запрос из базы данных). Если вы пишете инструмент командной строки, который запускается за один проход, возможно, вы захотите жить с блокировкой. Но если вы пишете какое-либо адаптивное приложение (например, веб-сайт), блокировка - это убийство.
Так что возможно , что кто-то может дать вам ответ о том, как сделать этот синхронный вызов блокирующим. Если это так, и если вы реализуете это, вы делаете это неправильно. Вы также можете использовать многопоточный язык сценариев, такой как Ruby или Python.
Написание обратных вызовов не так уж и плохо, но требует некоторого размышления об архитектуре и упаковке способами, которые, вероятно, незнакомы людям, не привыкшим к стилю.