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

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

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

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

8973閲覧

React.jsを用いたWEBアプリのデータベース処理について

yyyAse

総合スコア12

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2018/02/05 03:43

現在、react.js(create-react-app)でWEBアプリを作成しています。
データベースとの連携を考えた場合、ajax/phpかnode.js、どちらを採用したほうが良いのか、
迷っているので、質問させていただきました。

react.jsでデータベースとの連携を行う場合、node.jsやajax/phpなど考えられますが、
今本番環境にしているレンタルサーバーだとnode.jsが動かないので、必然的にajax→phpの選択肢しか私には思いつきません。
しかし、今後の開発を考えると、node.jsが動く環境に移行した方が選択肢が増えますし、良いのではと思いますが、
node.jsが動く環境へ移行する手間(VPSの契約や環境構築など…)を考えると、今まで通りajax+phpでデータベースとの連携でも良いかな?とも思っています。
実際に実装されている方やこういう考え方がある、こうした方が良い、などご意見ありましたら是非ご教授をお願いします。

補足:
個人で開発しています。(プライベートではなく仕事です)
今まで2年ほどですが、fuelphp+jqueryでWEBアプリ作成しておりました。
ただ、react.jsに関しては最近導入しまして、
2つアプリを作成した程度とreduxを勉強中なくらいど素人です。

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

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

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

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

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

guest

回答2

0

ベストアンサー

現時点でのNode.jsは
ZendフレームワークやCakePHP1系等が出ていた昔のPHPフレームワーク界隈の状況に似ています。
PHP+Laravelと比較するとセキュリティ面や実装速度面で見劣りしていると言って間違いないでしょう。

多くのPHP+JavaScriptで開発してきたエンジニアにとっては、
C10K問題の解決、WebSocket鯖の実装といった面で仕方なく選ぶといった形になるでしょう。

現在Node.jsではプラグインを簡単に付け外し出来るという実装上の優位から、
超簡素なExpressフレームワークが人気ありますが、機能が殺風景過ぎて怖いです。
なので、私個人の開発ではNode.jsでやることは結構多いですが、お金貰って作るシステムは少々尻込みしますね。
現場や保守担当がPHPが得意な方が多ければ、わざわざNode.jsを選ぶという選択肢はあまり考えません。

今回はReact+Ajaxですので、現状PHPで十分ならば無理に選ぶ必要はありません。


というわけでPHPがオススメですが、
Node.jsを覚えればパッケージの追加ってこんなに簡単だったのか
…という風にエンジニアとしての枷が外れる感覚を覚えました。

Node.jsで色んなCLIツールを作ってみると良いかもしれません。
それで十分自信がついたらWebアプリとしてどんどん使っていけると思います。

投稿2018/02/05 05:46

miyabi-sun

総合スコア21158

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

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

yyyAse

2018/02/05 10:19

ありがとうございます。ご意見を踏まえて改めて考えましたが、phpで十分だと思いました。 node.jsはまだまだ分からないことが多いので、プライベートで使用してコツを掴みたいと思います。
guest

0

ReactでやるべきことはJSファイルを作り出すことまでだと思います。
その点で本番にNodeが必要な状況にはあまりなりません。
サーバサイドレンダリングを行う必要性が出てきたときには必要ですが、どちらにせよDBと接続する部分ではNodeという選択肢は得意じゃないので止めたほうが良いと思っています。

理由は

  • シングルスレッドのため、非同期で全部書かなければいけないこと。思っているよりはるかにめんどいです。
  • シングルスレッドのため、200同時接続とかあるとDBのコネクションを食いつぶすことがある

などです。

投稿2018/02/05 04:00

sakapun

総合スコア888

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

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

yyyAse

2018/02/05 10:20

非同期で全部ですか…、実際書くとなると確かに面倒ですね。 今回はphpを採用することにしました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問