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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

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

Q&A

解決済

1回答

2346閲覧

express(node.js)のファイル構成

uer03108

総合スコア194

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

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

0グッド

0クリップ

投稿2018/09/26 14:12

node.jsを勉強し始めて数日が過ぎました。

クラサバ間のパラメタの受け渡しは理解できました。
expressとajax(jQuery)を使用することにしました。

現在、ファイル構成について勉強中です。
モジュールは、expressを使用しています。
一応、下記の様な構成にしようかと考えています。

javascript

1 2//app.js 3 4//モジュール 5var express = require("express"); 6var app = express(); 7 8//listen()メソッドを実行して3000番ポートで待ち受け 9var server = app.listen(3000, function(){ 10 console.log("Node.js is listening to PORT:" + server.address().port); 11}); 12 13//処理1 14app.get("/urlShori_1", function(req, res, next){ 15 16 //リクエスト取得 17 var request = JSON.stringify(req.body); 18 19 //処理 20 var aryResult = funcShori_1(request); //別ファイルで定義 21 22 //送信 23 res.send(aryResult); //ajaxで受け取り(クライアント側) 24}); 25 26//処理2 27app.get("/urlShori_2", function(req, res, next){ 28 29 //リクエスト取得 30 var request = JSON.stringify(req.body); 31 32 //処理 33 var aryResult = funcShori_2(request); //別ファイルで定義 34 35 //送信 36 res.send(aryResult); 37}); 38

上記の様に、処理ごとに処理関数を別ファイルに定義 -> app.jsファイルに読み込みしようかと考えています。

各処理関数は、関数名が重複しない様にクラス化します。

以前、jsファイルから別のjsファイルの参照が上手く出来なかったので、その部分が心配なのですが。

一般的な書き方が全く分からないのですが、この様な書き方でも問題ないでしょうか。


追記(jsファイルから別のjsファイルを参照する)

下記サイトの様に記述しようかと考えています。

https://www.jiichan.com/programming/programming.php?lang=js&no=03

javascript

1 2var req = new XMLHttpRequest(); 3req.open("GET", "include.js", false); 4req.send(""); 5 6// 上のreq.openでは同期通信(false)を指定しているので以下はレスポンスを待ってから実行される。 7// 文字列をjavascriptとして実行。 8eval(req.responseText); 9 10

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

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

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

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

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

guest

回答1

0

ベストアンサー

Node.jsなのだから、別ファイルでmodule.exports = なんらかの処理してあげて、読み込みたい方からはrequire()すればいいだけですよ。

  • app.js

js

1const funcShori_1 = require('./funcs/shori1.js'); 2 3// 中略 4 5 var aryResult = funcShori_1(request); 6 7// 後略
  • funcs/shori1.js

js

1module.exports = function(request) { 2 // なんらかの処理 3}

こんな感じですね。

追記

参考にされたサイトですが、それはフロントのJSファイル内から別JSファイルを動的に呼び出す方法ですね。
Node.jsはWEBシステムとして構築した場合はサーバサイドなので、わざわざ通信して取ってくるなんて方法は不要です。

投稿2018/09/27 02:15

編集2018/09/27 02:19
spookybird

総合スコア1803

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

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

uer03108

2018/09/27 12:18

ありがとうございます。 参考になりましたm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問