我正在开发一个 Web 应用程序,用户可以在网页上输入“设备 ID”(我们在现场有 100 台设备在生产中使用,每个设备都有一个唯一的 ID),用户输入的结果将被发送返回到 Node.js 服务器,该服务器会将其存储到一个变量中,并在 SQL 查询中使用它从数据库服务器检索有关该特定设备的结果,然后将结果显示回客户端网页。
目前表单输入功能尚未实现,尽管我已经在 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 仅适用于服务器自己生成新信息的情况,因此我不能使用 AJAX,因为用户正在输入设备 ID 以从中获取信息。
3) 可能使用 POST/GET
谁能建议我应该采取什么行动?如果解决方案(3)是最好的方法,我将如何去做?它可以集成到我现有的代码(如上所示)中而无需进行很多更改吗?
谢谢!