我的网页userID
上有一个文本输入字段,用户在其中指定一些信息,这些信息将附加到JSON请求中。当用户提交信息时,将调用函数fetchJSON
。
代码如下:
function fetchJSON(){
//get user input
var userID = document.getElementById("userID").value;
//create request and options
var https= require("https");
var options = {
host: "api.example.com",
path: "/GetHistory/V001/account_id=" + userID,
method: "GET"
};
//handle request
var request = https.request(options, function(response){
var body = "";
response.on("data", function(chunk){
body += chunk.toString("utf8");
});
response.on("end", function(){
var json = JSON.parse(body);
console.log(json);
});
});
request.end();
}
当我使用用户ID硬编码(node main.js
)从终端运行代码时,代码可以正常工作,但我对如何从具有用户定义输入的网页运行代码感到困惑。
感谢您的帮助!
答案 0 :(得分:0)
首先, node.js 无法操纵客户端DOM。
因此您需要将变量传递给服务器,因此在生成基本网站后使用评论中提到的express
设置基本的get
路径
app.get('/api/getprofilebyid/:id',function(req,res){
//get user input
var userID = req.params.id; //document.getElementById("userID").value;
//create request and options
var https= require("https");
var options = {
host: "api.example.com",
path: "/GetHistory/V001/account_id=" + userID,
method: "GET"
};
//handle request
var request = https.request(options, function(response){
var body = "";
response.on("data", function(chunk){
body += chunk.toString("utf8");
});
response.on('error',function(err){
res.json(500,{'error':err}); // an error occured.
});
response.on("end", function(){
request.end(); // and the request.
res.json(200,body); // output json
});
});
});
并使用ajax请求或只是浏览到url ..
在客户端使用jQuery ajax $.get
var userID = document.getElementById("userID").value;
$.get('/api/getprofilebyid/'+userID,function(response){
// handle response
});