ユーザーが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)が最善の方法である場合、どうすればこれを行うことができますか?多くの変更を加えることなく、既存のコード (上記) に統合できますか?
ありがとう!