Elixir 控制器和插入式长生不老药凤凰有什么不同?

Elixir 控制器和插入式长生不老药凤凰有什么不同?,elixir,phoenix-framework,Elixir,Phoenix Framework,来自Node.js/Express后台,我看到plug基本上等同于Phoenix框架中的中间件。在阅读了控制器之后,我注意到控制器也是一个插头,它本身可以包含一个或多个插头 我对插头和控制器的使用感到困惑 插头使合成成为可能。这与正常的函数组合有什么不同 插头和控制器之间有什么区别?什么时候用什么,因为我可以提前退出插头呢 最后,控制器具有操作。这些操作同样具有与基于函数的插件相同的特征。那么,动作与插头有什么不同呢 插头插入连接并返回修改后的连接。是的,控制器也是一个插头;行动也很重要。我和

来自Node.js/Express后台,我看到
plug
基本上等同于Phoenix框架中的中间件。在阅读了
控制器
之后,我注意到
控制器
也是一个
插头
,它本身可以包含一个或多个插头

我对插头和控制器的使用感到困惑

  • 插头使合成成为可能。这与正常的函数组合有什么不同
  • 插头和控制器之间有什么区别?什么时候用什么,因为我可以提前退出插头呢
  • 最后,控制器具有
    操作
    。这些操作同样具有与基于函数的插件相同的特征。那么,动作与插头有什么不同呢

    • 插头插入连接并返回修改后的连接。是的,控制器也是一个插头;行动也很重要。我和你有相同的类比,我把函数插件和模块插件作为其他框架中的中间件

      如果“每次”向服务器发送请求时,您都需要预处理以验证某些条件/事项,或者设置一些变量并在调用控制器之前采取措施,则应使用插件。e、 身份验证,i18n。。。我可以说,大多数时候这些东西都是在cookie、会话、http头上设置的。。。例如,在身份验证中,如果用户没有会话或令牌,您可以在连接到达控制器之前停止连接,在另一种情况下,如果设置了连接(会话或令牌),您可以从数据库中获取用户并在连接中设置连接,将在请求活动周期期间可用

      控制器应用于处理通常与特定资源相关的一组特定操作。理想情况下,在调用控制器之前,所有需要的东西都应该装上插头。如果您必须显示用户配置文件,那么您已经为此定义了一个路由,比如说
      user/profile
      。通过这条路线,我不知道我试图查看个人资料的用户,但我也知道用户必须登录才能查看他的个人资料。我会写一个插件来检查他是否正在进行会话,并在我的分配图
      当前用户中设置。Phoenix将通过相应的操作呼叫相关控制器,比如说它是
      show_profile(conn,_params)
      ,conn将设置好所有内容,然后我可以向用户发送所需的模板或响应。

      控制器是Phoenix“插入类固醇”的名称