Проверка объектов на не родные методы - PullRequest
1 голос
/ 24 апреля 2011

В настоящее время я собираю MVC Framework в NodeJS, но у меня возникает небольшая проблема, когда я проверяю, существует ли метод в контроллере, я делаю следующее:

var controller = new (this.appManager.getControllerObj(this.route.controller))();
var method     = this.route.method;

if(method in controller)
{
    /*
     * Method exists within controller
     * */
}

Но, очевидно,Тип объекта имеет собственные прототипы, поэтому, если я получаю доступ к своему сайту со следующим: https://localhost/index/__proto__ он, очевидно, пытается маршрутизировать этот метод.

Теперь я знаю, что могу просто занести в черный список определенные методы, но есть ли лучший подходчтобы выполнить это

Обновление:

Кажется, это работает нормально:

if((method in controller) && !controller.hasOwnProperty(method))
{
    /*
     * Method exists within controller
     * */
}

Спасибо

1 Ответ

1 голос
/ 24 апреля 2011

Вы можете использовать:

controller.hasOwnProperty(method)

Google для hasOwnProperty, чтобы узнать больше об этом

...