2

小さな PHP コードベース (1000 行未満) を Node.js に変換することを計画しています。約 5 万行の JS を含む Web アプリなので、Node.js に移行することにしました。node-static(さらに、PHP はロバのボールを吸う.)パッケージで提供するいくつかの静的ファイル (CSS、HTML など) があります。私の問題は、静的ではない PHP ファイルにあります。

たとえば、GET 変数で実行される検索ページがあります。URL の末尾に追加する?keyword=blahと、PHP スクリプトが DB を検索し、ブラウザ用の HTML を出力します。Node.js でこの動作を再現するにはどうすればよいですか? localhost/search.html(つまり、 URL で GET 変数をリッスンして受け入れるサーバーを作成するにはどうすればよいでしょうか?)

これを実現するために検索の実行方法を変更できることはわかっていますが、同じように動作するスクリプトがいくつかあるため、この動作を再現する方法を知りたいと思っています。

編集: データベースに関しては、実際に OrientDB を使用しています。しかし、直接接続するのではなく、JSON リクエストを送信する一連の Java サービスを使用します。本当に必要なのは、JSON リクエストを (同期的に) 送信して HTML を出力することだけです。

4

1 に答える 1

3

これが私がそれを行う方法です:

新しいExpressJSアプリを作成する

"express myapp" 

すべての依存関係をインストールする

"cd myapp && npm install".

app.js では、「 var app」の前に「url」パッケージが必要であることを確認してください。

var url = require('url');

「app.js」に新しいルートを追加して、「search.html」への GET リクエストを検索するようにします。

app.get('/search.html', function(req, res) {

    // Process the request for the GET variables
    var url_parts = url.parse(req.url, true);
    var query = url_parts.query; // These are all your GET variables
    var search_keyword = query.keyword;

    if(search_keyword) {
        // The keyword indeed exists
        console.log(search_keyword);

    }
    res.end();
});

アプリを実行して「search.html?keyword=haha」に移動すると、コンソールに「haha」が出力されます。キーワードを使用して、その後は何でもできます。

于 2013-03-27T15:08:24.137 に答える