【发布时间】:2018-01-17 08:58:48
【问题描述】:
我需要从简单的 html 表单(下面的代码)中获取数据并将其发送到 API (http://netology.tomilomark.ru/doc/#api-ND),以便对其进行哈希处理。 这是html表单代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Form</title>
</head>
<body>
<form action="/sendForm">
Name:<br>
<input type="text" name="firstName" value="">
<br>
Surname:<br>
<input type="text" name="lastName" value="">
<br><br>
<input type="submit" value="Send">
</form>
</body>
这就是我在服务器端得到的:
"use strict";
const http = require("http");
const fs = require("fs");
const PORT = 3000;
let resObject = {};
let hash;
// Code that sends name + surname to the API and creates hash
// ------------- begin -------------
let options = {
hostname: "netology.tomilomark.ru",
path: "/api/v1/hash",
method: "POST",
headers: {
"firstName": "Evgeny",
"Content-Type": "application/json"
}
};
let req = http.request(options, (res) => {
let resString = "";
res.on("data", (data) => {
resString += data;
});
res.on("end", () => {
console.log(resString);
hash = resString["hash"];
})
});
let reqMessage = JSON.stringify({"lastName": "Kobzev"});
req.write(reqMessage);
req.end();
resObject.firstName = "Evgeny";
resObject.lastName = "Kobzev";
console.log(JSON.stringify(resObject));
// -------------- end --------------
// Create web server that loads the html file
// ------------- begin -------------
const server = http.createServer((req, res) => {
fs.readFile("./logs/form.html", (err, file) => {
res.writeHead(200, {'Content-Type': 'text/html','Content-Length':file.length});
res.write(file);
});
});
server.on("error", (err) => console.error(err));
server.on("listening", () => console.log(`Start HTTP on port ${PORT}`));
server.listen(PORT);
// -------------- end --------------
如何从那个简单的表单中获取数据,然后将其发送到 API?问题是我需要使用低级抽象解决方案:http 可能还有查询字符串。
任何帮助将不胜感激!
【问题讨论】:
-
您想要获取响应中的名称或哈希值???或者只是想要您在表单中输入的数据????
-
@SyedAyeshaBebe 这个 API 给了我这样的哈希 + 值:{"hash":"04c1bc3782871a2801abf121e3ea45f8"}。稍后我可以将我的姓名、姓氏、哈希值打包到一个对象中。没有问题