node.js - 在javascript中获取发送到服务器端的客户端用户名
问题描述
如何在javascript中将表单输入从客户端传递到服务器?下面是客户端。我想获取一个用户名或在文本框中输入的任何内容,并将其发送到 server.js,在那里将对其进行处理以进行验证。问题是我需要将来自 client.js 的数据存储在 server.js 的一个变量中,以便能够检索它。
var textbox;
var dataDiv;
window.onload = init;
function init(){
textbox = document.createElement("input");
textbox.id="textbox";
dataDiv = document.createElement("div");
var header = document.createElement("h1");
header.appendChild(document.createTextNode("Select User"));
var button = document.createElement("BUTTON");
button.id = "myBtn";
var textBtn = document.createTextNode("Click me");
button.appendChild(textBtn);
button.addEventListener("click", () => {
sendData();
});
var docBody = document.getElementsByTagName("body")[0];//Only one body
docBody.appendChild(header);
docBody.appendChild(dataDiv);
docBody.appendChild(textbox);
docBody.appendChild(button);
}
function sendData(){
var usrName = document.getElementById("textbox").value; //I want to send it to server.js
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var dataObj = JSON.stringify(this.responseText);
dataDiv.innerHTML = dataObj;
}
};
xhttp.open("GET", "/register", true);
xhttp.send();
}
这是服务器端
var express = require('express');
var app = express();
app.get('/register', handleGetRequest); //how do I pass usrName here?
app.use(express.static('public'));
app.listen(5000);
function handleGetRequest(request, response){
var pathArray = request.url.split("/");
var pathEnd = pathArray[pathArray.length - 1];
if(pathEnd === 'register'){
response.send("{working}");
}
else
response.send("{error: 'Path not recognized'}");
}
解决方案
发送数据:
function sendData(){
var usrName = document.getElementById("textbox").value; //I want to send it to server.js
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var dataObj = JSON.stringify(this.responseText);
dataDiv.innerHTML = dataObj;
}
};
xhttp.open("GET", "http://localhost:5000/register?usrName=" + encodeURIComponent(usrName), true);
xhttp.send();
}
读取数据:
function handleGetRequest(request, response){
var urlParts = request.url.split("?");
if(urlParts[0] === '/register'){
var usrName = urlParts[1].replace('usrName=', '');
response.send("{" + usrName + "}");
}
else
response.send("{error: 'Path not recognized'}");
}
推荐阅读
- python - 整数网格
- google-chrome-extension - Chrome 扩展 Oauth2 身份验证和验证问题
- android - Firestore:是否相当于用子集合调用链接一个文档,存储一个文档然后存储它的子集合?
- r - 如何使用 PLM 运行州级固定效应
- algorithm - 解决具有一些约束的极小极大路径问题
- bash - 做算术后在bash中将前导0添加到整数
- ssms - SSMS 显示损坏切换选项卡或执行脚本
- javascript - 如何在悬停的 div2 上显示 div1 并在鼠标移出时淡化 div1?
- java - 当其他片段中的数据发生变化时如何刷新recyclerview适配器?
- postgresql - 我不知道 Postgresql 如何在我的 Mac 上创建用户