私のindex.html
ファイルのフォームから入力を取得し、POSTs
というファイルをlocalhost:8080で実行されているノードスクリプトに取得するコードがあります。次に、ノードスクリプトは入力を受け取り、LUIS.ai APIを呼び出して照会し、応答を戻します。しかし、返答には長い時間がかかり、ページを更新してフォームの提出を確認して結果を得る必要があります。これを行うより効率的な方法がありますか?私はNode.jsが初めてです。使用して非同期に対処することを約束フォーム提出後にNode.jsで効率的にレスポンスを送信する
app.js
//Modules
var express = require('express');
var bodyParser = require('body-parser');
var request = require('request');
var http = require('http');
//Variables and definitions
var app = express();
var query = null;
//LUIS.ai URL
var luisURL = "LUIS_API_URL";
var intent = null;
//body-parser
app.use(bodyParser.urlencoded({ extended: true }));
//Get and handle LUIS.ai data
function getLUISData(urlLUIS){
//Get LUIS.ai JSON data
request({url:urlLUIS, json:true}, function (error, response, body) {
intent = body
});
return intent;
}
//Get query from HTML form
app.post('/query', function(request, response) {
query = request.body.query;
luisURL = luisURL.concat(encodeURIComponent(query));
var data = getLUISData(luisURL);
response.send(data);
});
app.listen(8080);
index.htmlを
<!DOCTYPE html>
<html>
<body>
<form action="http://127.0.0.1:8080/query" method="post">
<input type="text" name="query"/>
<input type="submit" value="Submit" />
</form>
</body>
</html>
リクエストは非同期です。要求を約束してください。 –
@Dinesh申し訳ありませんが、node.jsを初めて使う人はどうすればいいですか? –