Не стоит фокусироваться на ноде, принципы построения апи одинаковы для всех ЯП. Я только книги могу посоветовать, у Oreilly есть несколько хороших книг про архитектуру апи.
sergafon: есть два пути:
1. Хороший - забить в поисковик event.preventDefault, разобраться в том, что это такое, получить новые знания
2. Плохой - воспользоваться кодом, который я написал в ответе.
SimpleShadow: вам же Денис Инешин прямо пример привел, все расписал. Вы хоть немного пытались вникнуть самостоятельно в то, что мы вам тут ответили? Что такое Developer Tools и дебагер вы понимаете? Если не понимаете, почему бы не загуглить?
Дмитрий: прошу прощения, из-за вашей неудачной формулировки я перенес в комментарии, но вы абсолютно правы. Напишите ответ еще раз, чтобы автор мог его принять.
Потому что даже если в цикле написать var ip, и выполнить цикл 100 раз, объявление переменной "всплывет" в начало функции, никакой ошибки это не вызовет и код будет работать, как ожидалось. Никаких ограничений в этом плане не накладывается, но это считается плохой практикой, именно поэтому "не рекомендуется", а не "нельзя".
Не нельзя, а не рекомендуется. Ваш вариант ничуть не лучше, имхо. Переменные стоит объявлять отдельно в самом начале функции, здесь вы их уж очень сильно закамуфлировали.
У людей нет выбора при использовании расширений - люди используют расширение исходя из содержимого. Вы можете вообще любое расширение назначить, хотите, используйте расширение *.we-de. Этот вопрос выеденного яйца не стоит, мы уже слишком много времени на его обсуждение потратили.
В файлах хранится код генерации страниц, они к URL отношения не имеют.
Вот какие-то уроки на эту тему: www.itlessons.info/php/routing-library, habrahabr.ru/post/31270
Ну а вообще в любом современном фреймворке одна точка входа и виртуальный роутинг.