1.2.0 • Published 6 years ago

alright-myserver v1.2.0

Weekly downloads
-
License
MIT
Repository
-
Last release
6 years ago

my server 【設計書】

expressを参考にして自分のブログ用のnodeのサーバーオブジェクトみたいなものを作る。

できること

サーバーを起動して、urlのパスの第一層目の内容に合わせた関数を実行できる。そのときにエラーが起きた場合はエラー時の関数を実行できる。

オブジェクト(こんな使い方)

const myserver = require("myserver")

myserver()
  .serverProgaram('/page', getPage) // urlの第一層目のパスとそのときに実行する関数をセットする。
  .serverPrograms({ // サーバープログラムを複数まとめてセットできる
    '/': getPage,
    '/file': getFile,
  })
  .beforeServerProgramOf('/page', pageCheck) // 特定のサーバープログラムの前に実行する関数をセットする。
  .beforeServerProgram(accessBlock) // サーバープログラムの実行される前に実行する関数をセットする。
  .error(getErrorPage) // エラーのときに実行する関数。
  .errorType({ // エラーの名前に合わせて実行する関数を決められる。
    'notfindpage': getErrorPage,
    'notfindfile': return404,
  })
  .listen(5000) // サーバーを開始するときのポートを設定。

メソッドの説明

serverProgram( @string , @function )

第一引数の文字列はurlの第一層目のパス。 既に同じパスがった場合は上書きされる。 第二引数は上記のパスが一致したとき実行する関数を値に入れる。 第二引数の関数の詳細は「サーバープログラムの説明」に記述。

serverPrograms( @object )

上記の複数版。

beforeServerProgramOf( @string , @function )

第一引数の文字列はurlの第一層目のパス。 既に同じパスがあった場合は上書きされる。 第二引数の関数は、第一引数のパスでサーバープログラムが指定されているときに、サーバープログラムが実行される前に実行する。 第二引数の関数の詳細は「beforeServerProgramの説明」に記述

beforeServerProgram( @function )

サーバープログラムが実行される前に実行する関数を入れる。 関数の詳細は「beforeServerProgramの説明」に記述

error( @function )

引数の関数は、urlがサーバープログラムにない場合や、サーバープログラムがエラーを返したときに、エラー名に一致するエラープログラムを探すが、それもない場合に実行される。 引数の関数の詳細は「エラープログラムの説明」に記述。

errorType( @object )

オブジェクトはエラー名をキーにして、そのときに実行される関数を値にする。 エラー名については「エラーオブジェクトの説明」に記述。 また、オブジェクトの値に入る関数の詳細は「エラープログラムの説明」に記述

serverProgram( @string , @function )

listen( @number )

引数のポートでサーバーを開始します。

サーバープログラムの説明

第一引数

requestオブジェクト。 詳細は https://nodejs.org/api/http.html#http_class_http_incomingmessage を参照(外部ページ)。

第二引数

responseオブジェクト。 詳細は https://nodejs.org/api/http.html#http_class_http_serverresponse を参照(外部ページ)。

第三引数

エラーオブジェクト。 詳細は「エラーオブジェクトの説明」に記述してあります。

戻り値

エラーオブジェクトを返すとnameに対応したエラープログラムが実行されます。 エラーオブジェクトのnameとdetailsは何も書かずに省略できます。

promiseの使用

戻り値にPromiseオブジェクトを使用することが出来ます。 サーバープログラムの実行時にawait演算子を使用しているので、Promiseが解決するまで次の処理に移りません。 (非同期の処理でも、reject関数でエラーオブジェクトを返せば正常にエラープログラムに移ります)

beforeServerProgramの説明

myserver
  .serverProgram('/page', () => {
    console.log('serverProgram')
  })
  .beforeServerProgram('/page', () => {
    console.log('before') // '/page'に対してリクエストが来たときこっちが先に実行される。
  })

第一引数

requestオブジェクト。 詳細は https://nodejs.org/api/http.html#http_class_http_incomingmessage を参照(外部ページ)。

第二引数

エラーオブジェクト。 詳細は「エラーオブジェクトの説明」に記述してあります。

戻り値

エラーオブジェクトを返すとnameに対応したエラープログラムが実行されます。 エラーオブジェクトのnameとdetailsは何も書かずに省略できます。

promiseの使用

戻り値にPromiseオブジェクトを使用することが出来ます。 サーバープログラムの実行時にawait演算子を使用しているので、Promiseが解決するまで次の処理に移りません。 (非同期の処理でも、reject関数でエラーオブジェクトを返せば正常にサーバープログラム、もしくはエラープログラムに移ります)

エラープログラムの説明

第一引数

requestオブジェクト。 詳細は https://nodejs.org/api/http.html#http_class_http_incomingmessage を参照(外部ページ)。

第二引数

responseオブジェクト。 詳細は https://nodejs.org/api/http.html#http_class_http_serverresponse を参照(外部ページ)。

第三引数

エラーオブジェクト。 詳細は「エラーオブジェクトの説明」に記述してあります。

第四引数

ブーリアン値が入ります。 ブーリアン値は、サーバープログラムが既にresponse.end関数を実行しているときにtrueになります。していない場合はfalseです。 (trueのときにresponse.end関数を実行するとエラーになります)

エラーオブジェクトの説明

error = {
  name: @string or @undefined
  detail: @string or @undefined,
  setName: [function]
  setDetail: [function]
}

error.name

エラー名を入れる。

既に使っている名前

**noServerProgram** urlと合致するサーバープログラムがないとき **serverProgramError** サーバープログラムにエラーがあって正常に実行出来なかったとき

error.details

エラーの説明を入れる。

error.setName( @string )

自身のエラーオブジェクトのnameプロパティに引数の文字を代入します。 引数が文字列以外の場合は代入しません。 戻り値は自身のエラーオブジェクトです。

error.setDetail( @string )

自身のエラーオブジェクトのnameDetailに引数の文字を代入します。 引数が文字列以外の場合は代入しません。 戻り値は自身のエラーオブジェクトです。

1.2.0

6 years ago

1.1.7

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago