PHP アプリケーションでは、クラス階層を作成できます
class UserController extends Controller {
public function __constructor(){
//..
}
}
class LoggedUserController extends UserController {
protected $_loggedUser;
public function __constructor(){
if( empty($_SESSION['user']) ){
die('Access denied');
}
else{
$this->_loggedUser = $_SESSION['user'];
}
}
}
class MessagesController extends LoggedUserController {
public function action_get_all(){
// here I can use $this->_loggedUser and be sure that it is not empty
// Something like that:
$messages = ORM::factory('messages')->where('user_id', '=', $this->_loggedUser->id)->find_all();
}
}
同じ方法で、クラス AdminUserController を作成し、管理者以外のユーザーがコントローラーを使用できないようにします。
しかし、Node.js では、アプリケーションのロード時にコントローラーのコンストラクターが 1 回だけ呼び出されるため、このトリックを使用できません。
Node.jsでこれを実現する方法があるのではないでしょうか?