web-dev-qa-db-ja.com

Express.jsはMEANスタックで何をしますか?

最近、AngularJSにアクセスしましたが、とても気に入っています。今後のプロジェクトでは、MEANスタック(MongoDB、Express、Angular、Node)の使用を検討しています。私はAngularにかなり精通しており、MongoDBの目的とスタック内のNode。 Express.jsの目的は何ですか?MEANスタックに不可欠ですか?従来のMySQL、PHP、javascriptアプリでは何と比較しますか?他の3つのコンポーネントではできないことは何ですか?

また、スタックの4つの部分がどのように連携するかについて、誰かが自分の意見を述べたい場合、それは素晴らしいことです。

51
NicolasMoise
  • MongoDB =データベース
  • Express.js =バックエンドWebフレームワーク
  • 角度=フロントエンドフレームワーク
  • ノード=バックエンドプラットフォーム/ Webフレームワーク

基本的に、Expressが行うことは、リクエストエンドポイントの作成、Cookieの処理などのためにVanilla Nodeよりもややシンプルなインターフェイスを提供することにより、Webアプリケーションを簡単に作成できることです。計算式から外すこともできますが、Webアプリケーションを作成するにはさらに多くの作業を行う必要があります。 Node自体は、expressが行うすべてのことを行うことができます(expressはnodeで実装されます)が、expressはそれをより良いパッケージにラップするだけです。

Expressを、あなたが説明するスタック内のいくつかのPHP Webフレームワーク、 slim のようなものと比較します。

63
jakee

Expressは、Node.jsを使用してWebアプリケーションを作成するためのユーティリティベルトと考えることができます。 Webサーバーを構築するために必要なほとんどすべての機能を提供します。 Vanilla Node.jsを使用して同じ機能を記述する場合、大幅に多くのコードを記述する必要があります。以下に、Expressの機能の例をいくつか示します。

  • RESTルートは、のようなものでシンプルになります。
    • app.get('/user/:id', function(req, res){ /* req.params('id') is avail */ });
  • リクエストまたはレスポンスでさまざまなことを行うさまざまな同期機能をプラグインできるミドルウェアシステム。認証またはプロパティの追加
    • app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
  • POSTリクエストの本文を解析するための関数
  • クロスサイトスクリプティング防止ツール
  • 自動HTTPヘッダー処理
    • app.get('/', function(req,res){ res.json({object: 'something'}); });

一般的に、SinatraはRubyに対して、ExpressはNode.jsに対してです。 PHPの例ではないことは知っていますが、PHPフレームワークについてはあまり知りません。

20
Jondlm

Expressは、Cookieなどの処理、リクエスト本文の解析、応答の形成、およびルートの処理を行います。

また、ソケットをリッスンして着信要求を処理するアプリケーションの一部でもあります。

express github の簡単な例

 var express = require( 'express'); 
 var app = express(); 
 
 app.get( '/'、function(req、res ){
 res.send( 'Hello World'); 
}); 
 app.listen(3000); 

エクスプレスサーバーの作成、ルートの作成を示しますapp.get('/'...およびポートを開いて、着信HTTP要求をリッスンします。

4
jeremy

ExpressはHttpjsの最上位に構築されたnodejsフレームワークであり、ルートを処理する簡単な方法など、より使いやすく機能が向上しています。

例:HTTPの使用

 var http = require('http');

//create a server object:
http.createServer(function (req, res) {
 res.writeHead(200, {'Content-Type': 'text/html'}); // http header

var url = req.url;
 if(url ==='/about'){
    res.write('<h1>about us page<h1>'); //write a response
    res.end(); //end the response
 }else if(url ==='/contact'){
    res.write('<h1>contact us page<h1>'); //write a response
    res.end(); //end the response
 }else{
    res.write('<h1>Hello World!<h1>'); //write a response
    res.end(); //end the response
 }

}).listen(3000, function(){
 console.log("server start at port 3000"); //the server object listens on port 3000
});

エクスプレスを使用:

var express = require('express');
var app = express();
app.get('/about',function(req,res)=>{
res.write('<h1>about us page<h1>'); //write a response
res.end();
})
1
Y Munawwer

Node.jsベースのフレームワークで表現し、サーバー側のコードとロジックの記述を簡素化します。

多くのユーティリティ機能を追加し、追加の機能を提供し、一般的に物事を簡単にします。

Expressはミドルウェアベース:基本的に、一連のミドルウェア(ステップの)を介して着信リクエストを送り込み、そこでリクエストを処理したり、データを読み取ったり、操作したり、ユーザーが認証されるか、基本的にすぐに応答を送り返します。

このミドルウェアチェーンにより、非常に構造化されたコードを記述できます。

1
Mile Mijatovic

Expressでは、Vanilla jsと比較して、http要求を簡単に管理できます。取得リクエストを行うには、以下が必要です

const Http = new XMLHttpRequest();
const url='https://jsonplaceholder.typicode.com/posts';
Http.open("GET", url);
Http.send();
Http.onreadystatechange=(e)=>{
console.log(Http.responseText)
}

エクスプレスでは、エクスプレスが必要であり、それを使用して、httpリクエストを行います。

const express = require("express")
const app  =express();
app.get("url",callback function);
0
Sai anurag