express-pickles2

Pickles 2 Server Emulator for Express.

Usage no npm install needed!

<script type="module">
  import expressPickles2 from 'https://cdn.skypack.dev/express-pickles2';
</script>

README

node-express-pickles2

Pickles 2 Server Emulator for Express.

Install

$ npm install --save express-pickles2

Usage

var express = require('express');
var expressPickles2 = require('express-pickles2');

var app = express();
app.use('/*', expressPickles2('/path/to/.px_execute.php', {}, app) );
app.listen(3000);

Options

app.use(
    '/*',
    expressPickles2(
        '/path/to/.px_execute.php' ,
        {
            'liveConfig': function(callback){
                callback(execute_php, options);
                return;
            },
            'processor': function(html, ext, callback, response){
                if( ext == 'html' ){
                    html = yourCustomProcessor(html);
                }
                callback(html);
                return;
            },
            'bin': '/path/to/php',
            'ini': '/path/to/php.ini',
            'extension_dir': '/path/to/ext/'
        },
        app
    )
);
liveConfig
起動済みのサーバーに動的に設定を与える必要がある場合に使用します。
このオプションは、Pickles 2 を利用した外部アプリケーションなどが、その都合によって加工を必要とする場合などを想定して用意されました。
processor
出力前の加工処理を設定します。 Pickles 2 とは本来無関係の機能で、ウェブサイトに由来する加工処理をここに実装することは望ましくありません。代わりに、Pickles 2 に搭載されている processor 機能を使用してください。
このオプションは、Pickles 2 を利用した外部アプリケーションなどが、その都合によって加工を必要とする場合などを想定して用意されました。
引数は次の通りです。
html
加工前のHTMLソースコードが渡されます。
ext
コンテンツの拡張子が渡されます。
callback
コールバック関数です。引数に、加工後のHTMLソースコードを渡してください。
response
Pickles 2 の応答情報オブジェクトです。エラーメッセージや、relatedlinks にアクセスする必要がある場合は、このオブジェクトに格納されています。
bin
PHP のパス。 px2agent へ引数として渡されます。
ini
PHP の php.ini のパス。 px2agent へ引数として渡されます。
extension_dir
PHP の extension のパス。 px2agent へ引数として渡されます。

更新履歴 - Change log

express-pickles2 2.0.0-beta.2 (2018年3月5日)

  • processor の第4引数に response を追加。
  • PHP のエラーメッセージの先頭に文字列 PHP が付いている場合を考慮するように修正。
  • Pickles 2 が出力するJSONに格納される header に対応。 (pickles2/px-fw-2.x@2.0.29 以降で有効)
  • Pickles 2 のコンテンツルートに設置された .htaccess を簡易的に解析し、 Pickles 2 に渡すべき 拡張子の一覧を取得して制御するようになった。
  • クライアントの HTTP_USER_AGENT を Pickles 2 へバイパスするようになった。
  • パフォーマンス向上。Pickles 2 のコンフィグ情報をキャッシュし、アクセス毎の負荷を低減した。

express-pickles2 2.0.0-beta.1 (2016年7月28日)

  • パラメータ THEME をセッションに記憶するようになった。
  • コンフィグ path_controot/ 以外の場合に、 direct のパスが拾えない不具合を修正。
  • コンフィグ path_controot/ 以外の場合に、 controot 外にアクセスしたときに、正しくない画面が表示される不具合を修正。
  • オプション bin, ini, extension_dir を追加

ライセンス - License

MIT License

作者 - Author