質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

2回答

371閲覧

node.js の Express でウェブサーバーとしての機能とAPIとしての機能を同時に利用可能でしょうか

apprentice

総合スコア67

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2022/09/08 12:21

編集2022/09/08 12:36

前提

node.js + Express を利用しようと考えています。

  • Express + EJSで、テンプレート構築
  • Router() 機能でルーティングを行い、パスごとにhtmlをダイナミック生成

上記の構成で、複数ページのウェブアプリは作成できました。

やりたいこと

アプリ側にフォームを設置して、入力した値をExpress に用意したAPIのエンドポイントで受け取り、バックエンドで処理を行いたいと考えています。

質問

上記の環境のもと、同時にExpressでAPIのエンドポイントを定義することができるものなのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

回答ありがとうございます。用語の件は失礼いたしました。

試したところ、問題なくできました。
御礼申し上げます。

投稿2022/09/11 04:45

apprentice

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

可能です。

用語がごっちゃになってますね。

ウェブサーバー

WebサーバはマシンのTCP80番ポートでクライアントからの通信を待ち受け、
HTTPプロトコルを使ってHTTPリクエストを受け取り、
HTTPリクエストを返す事が出来るマシンを指します。

Expressはこの仕様を実現出来るのでWebサーバとしての要件を満たしています。

Webページ

Webサーバの機能を利用して
Chrome等のWebブラウザでアクセスが来たら
HTML・CSS・JS・画像ファイル等を利用して訪問者をもてなすのがWebページです。

単にWebページと言った場合、主にWebサーバを使った情報の発信が目的となります。

Webアプリ

Webページの一つの形体です。
情報を発信するという目的から一歩踏み込んで、情報を管理したり計算等を行い。
訪問者に使って貰う事を目的としています。

例: 掲示板、SNS、Trello、GitHub

WebAPI

APIはApplication Programming Interfaceの頭文字を取ったふわっとしたものです。

その中でもWebAPIってだいたいこんなもんって所を解説すると、

WebアプリはChrome等のWebブラウザからアクセスしてもらって、
HTML+CSS+JS+画像ファイル等を使って利用してもらう想定です。

それに対するWebAPIは裏口のURLを用意して、そこにアクセスすれば、
Webブラウザ(HTMLやJSファイル)を介さず直接サービスを利用出来る機能を指します。
Node.jsやRubyといったプログラミング言語や、JavaScriptがFetchAPIを使って情報そのものを利用する為に使われる事が多いですね。

これはExpressで言うとパスを一個足して
ViewとしてHTMLを返すのではなく、JSON等でデータそのものを返すようにするだけです。

WebAPIもWebページも、Expressにとっては同じです。
パスを1個足して返すデータをHTMLにするかJSONにするかの違いだけです。


ウェブサーバーとしての機能とAPIとしての機能を同時に利用可能でしょうか

というわけで、この聞き方だと誤りでこう質問するべきとなります。
「WebアプリとWebAPIは併用可能ですか?」

上記説明したようにExpressはapp.get(path, fn)という記述でエンドポイントをいくらでも生やせます。
これを2個定義しましょう。

Webブラウザから来た人はそのままHTMLを返せば良いし、
JSのFetchやプログラミング言語越しにアクセスした人はJSONを返せば良いでしょう。

投稿2022/09/09 04:15

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問