JIakki: не уверен, что в этом дело, но меня смущает, как вы используете res.end (он не принимает параметров) и что вы обращаетесь к res.locals после res.end.
copal: нет, нельзя. next не принимает параметры, можно только передать 'route', чтобы управление перешло другому роуту. Подробнее в документации, см. последний пример в этом разделе.
deadkEEper1: да точно так же как у вас и написано, только не делайте res.send два раза.
Обычно middleware пишет результат своей работы в res.locals, а res.send делается только из контроллера. Если, допустим, у вас мидлварь проверяет авторизацию, то делают как-то так: res.send(401, 'Bad hacker, bad!') и не вызывают next.
Александр Марченко: ну как плохой? звонить звонит, голос слышно, морду видно, чатик, или, точнее, что сходит за таковой в скайпе, сообщения иногда передает. Рекламу показывает и ладно, что еще надо от скайпа?
guessss_who: при нынешних объемах винтов дуалбут это всегда опция, да. Но если нужный инструмент — это только часть воркфлоу, то будет не совсем удобно.
Chvalov: все, что вам нужно, есть в бесплатной версии, я гарантирую. Начните делать игру. Если это окажется чем-то серьезным, тогда и будете париться насчет лицензии.
Vlad Harbarchuk: да просто удобная абстракция. Вот, например, у вас есть объект корова, вы его написали, отладили, покрыли тестами, а теперь оказывается у вас их стадо. Вы же не будете в коде писать литерал для каждой коровы, да и невозможно это — вы напишите функцию, которая создает корову с нужной кличкой и расцветкой. Бум, поздравляю, вы изобрели функцию-конструктор. Ну а чтоб не говорить каждый раз «функция, создающая объект коровы», говорят «class Cow».