可能です。
用語がごっちゃになってますね。
ウェブサーバー
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を返せば良いでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。