Perbedaan Middleware Framework dengan Framework

Halo semuanya, saya sedang belajar Deno Js nah di dalam deno itu ada sebuah middleware framework yg bernama Oak, disini saya mau bertanya apasih bedanya framework seperti express atau sails pada node js dan middleware framework seperti oak pada deno js ?

avatar Mathius
@Mathius

37 Kontribusi 14 Poin

Diperbarui 3 tahun yang lalu

1 Jawaban:

<div>Perbedaan mencoloknya yang mengunakan Middleware adalah cara menangani request http dengan cara membuat saluran (pipeline) dari macam-macam 'module'. <br>Dengan begitu kita bisa mengatur module sesuai kebutuhan kita.<br>contoh: kalau kita membuat api server, maka ktia tidak perlu render(untuk html generator) dalam pipeline yang ada.<br>Ada kita ingin sebelum ke-module router, kita ingin ada module auth didepannya atau kita bisa menganti module auth dengan module yang sama tapi dari vendor yang berbeda. <br>Jadi kita mengatur sesuai kebutuhan.<br><br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;request-delegate-pipeline.png&quot;,&quot;filesize&quot;:38055,&quot;height&quot;:384,&quot;url&quot;:&quot;https://i.ibb.co/x6SbjRD/request-delegate-pipeline.png&quot;,&quot;width&quot;:600}" data-trix-content-type="image/png" data-trix-attributes="{&quot;caption&quot;:&quot;asp.net core middleware pipeline&quot;,&quot;presentation&quot;:&quot;gallery&quot;}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/x6SbjRD/request-delegate-pipeline.png" width="600" height="384"><figcaption class="attachment__caption attachment__caption--edited">asp.net core middleware pipeline</figcaption></figure><br>kalau <a href="https://expressjs.com/">express</a>, <a href="https://sailsjs.com/">sails</a>, <a href="https://hapi.dev/">hapi</a>; mereka menghandle request-nya langsung di-module-nya (route, render html, logic dan lainnya); mirip<a href="https://en.wikipedia.org/wiki/Common_Gateway_Interface"> Common Gateway Interface (CGI)</a>.<br><br>middleware ini terinspirasi dari <a href="https://github.com/rack/rack">rack</a>. <br>salah satu mengadopsinya adalah ASP.NET Core; diawali dengan project katana dengan Open Web Interface(OWIN).<br>Dalam ASP.NET Core sekarang ini ada <a href="https://docs.microsoft.com/en-us/aspnet/core/mvc/overview?view=aspnetcore-3.1">MVC</a> dan <a href="https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-3.1&amp;tabs=visual-studio">Razor Page</a> kalau kita ingin merender html; di sini kita bisa pilih menjalankan 2 system itu atau hanya satu saja.<br><br>Dari contoh diatas kita bisa lihat middleware ini bisa bertindak sebagai 'infrastructure'. <br>Bisa saja salah satu module middleware-nya itu untuk menangani render.<br>seperti <a href="https://rubyonrails.org/">Ruby-on-Rail</a> yang menjadi module-nya <a href="https://github.com/rack/rack">rack</a> atau <a href="https://docs.microsoft.com/en-us/aspnet/core/mvc/overview?view=aspnetcore-3.1">ASP.NET Core MVC</a>, <a href="https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-3.1&amp;tabs=visual-studio">ASP.NET Core Razor Page</a> dan <a href="https://docs.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-3.1">Blazor</a> yang menjadi module-nya ASP.NET Middleware .</div>

avatar soeleman
@soeleman

120 Kontribusi 147 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban