1

ユーザーがWebページに「デバイスID」を入力できるWebアプリケーションを開発しています(それぞれが一意のIDを持つ本番環境で数百台のデバイスを使用しています)。ユーザーが入力した結果が送信されますNode.js サーバーはそれを変数に格納し、それを SQL クエリで使用して、データベース サーバーからその特定のデバイスに関する結果を取得し、結果をクライアント Web ページに表示します。

フォームコードを html でコーディングしたにもかかわらず、現在、フォーム入力機能はまだ実装されていません。

DEVICE_ID をコード内のデータを取得したいデバイスに手動で変更した場合、プログラムはそのまま正常に動作しますが、もちろん、変更するのではなく、クライアント ページでこれを入力できるようにしたいと考えています。サーバー側のソース コードを手動で。

"use strict";
var pg = require('pg').native;
var http = require('http');
var $ = require('cheerio');
var fs = require('fs');
var url = require('url');

var htmlString = fs.readFileSync('index.html').toString();
var parsedHTML = $.load(htmlString);

var dbUrl = "tcp://URL HERE/";

// The Sign-ID
var DEVICE_ID = '2001202';

// Create the http server
http.createServer(function (request, response) {
    var request = url.parse(request.url, true);
    var action = request.pathname;

    // Connect and query the database
    pg.connect(dbUrl, function(err, client) {
        // The complete sql query for everything that's needed for the app!
        client.query("SQL QUERY IS HERE" + DEVICE_ID + "etc..", 
            function (err, result) {
                // Remaining program code is here that performs DOM based 
                // manipulation to display results returned from the server
                // to the client side page.

                // Time to Render the document and output to the console
                console.log(parsedHTML.html());

                // Render the document and project onto browser
                response.end(parsedHTML.html());
            }
        ); // End client.query
    }); // End pg.connect
}).listen(8080); // End http.CreateServer

pg.end();

私は次のことを検討しました: 1) 次のように、HTML コード内から OnClick() 関数を使用します。

onclick="lookupSignID()

次に、関数を含む HTML 内から外部 JS ファイルを含めますが、lookupSignID()これはクライアント側の関数を実行するだけであり、私が望むものではないことがすぐにわかりました。

2) AJAX は、サーバーがそれ自体で新しい情報を生成している場合にのみ適しています。そのため、ユーザーがデバイス ID を入力して情報を取得しているため、AJAX を使用できません。

3) おそらく POST/GET を使用

どなたか、私が取るべき行動についてアドバイスをいただけませんか?解決策(3)が最善の方法である場合、どうすればこれを行うことができますか?多くの変更を加えることなく、既存のコード (上記) に統合できますか?

ありがとう!

4

1 に答える 1

0

クライアント側で AJAX POST 関数を使用して jQuery を使用し、次にサーバー側で Express.js を使用した場合、次のようにすることができます。

app.post('/deviceid', function(req, res) {
   var deviceid = req.param('deviceid')
   console.log(deviceid)
   ...
})
于 2013-02-25T23:33:46.140 に答える