javascript - javascript/html + nodejs
问题描述
这是一个 html 示例,它在主机上192.168.56.152
使用静态 IP 地址运行。apache
<!DOCTYPE html>
<html >
<head>
<title>OnlinePage</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="frontend.js"></script>
</head>
<body>
<header>
<center><h1 style="margin-right: 24%;">Welcome to this page</h1></center>
</header>
<section class="container">
<form action="http://192.168.56.152:8080/submit" method="post">
<div class="form-row">
<div class="form-group col-md-6">
<label for="firstname">Firstname</label>
<input type="fname" class="form-control" id="formfirstname" placeholder="First Name">
</div>
<div class="form-group col-md-6">
<label for="lastname">Last Name</label>
<input type="lname" class="form-control" id="formlastname" placeholder="Last Name">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="classify">Classification</label>
<input type="text" class="form-control" id="formclassify" placeholder="Junior">
</div>
<div class="form-group col-md-4">
<label for="age">Age</label>
<select id="inputState" class="form-control">
<option selected="">16</option>
<option>17</option>
<option>18</option>
<option>18</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
</select>
</div>
<div class="form-group col-md-2">
<label for="uin">UIN</label>
<input type="number" class="form-control" id="uin">
</div>
</div>
<button type="submit" class="btn btn-primary" onclick="submitByClass()" >Submit</button>
</form>
</section>
</body>
</html>
这是CSS
button.btn.btn-primary{
margin-left: 1.25%;
}
form {
width: 67%;
}
body {
background-color: rosybrown;
}
这是客户端 javascript (frontend.js)。我用它来获取表单数据,然后将其作为对象发布。
function submitByClass() {
var xhttp = new XMLHttpRequest();
xhttp.open("POST", 'http://192.168.56.152/connectplus.js', true);
//send the proper header information along with th request
xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var status = xhttp.statusText + " 4 request finished";
console.log(status);
}
}
//data gotten in javascript as an object
var studentData = {
firstname: document.getElementById('formfirstname'),
lastname: document.getElementById('formlastname'),
classification: document.getElementById('formclassify'),
age: document.getElementById('inputState'),
UIN: document.getElementById('uin')
}
var studentDataString = JSON.stringify(studentData);
xhttp.send(studentDataString);
}
这是nodejs(connectplus.js)。它已成功连接到数据库。
var mysql = require('mysql');
const bodyParser = require("body-parser");
const express = require('express');
const application = express();
application.use(bodyParser.urlencoded({extended: true}))
application.use(bodyParser.json());
//creating connetion to database
var connetion = mysql.createConnection(
{
host:"localhost",
user: "root",
password: "password!",
database: "student_info"
});
///connecting to the database
connetion.connect(
function (err)
{
if(err) throw err;
console.log("connection made!");
}
);
application.post('/submit', function(req,res){
res.send('You sent the name "' + req.body.formfirstname + '".');
});
问题
- 如何获取我在 frontend.js 中发送的数据到 connectplus.js?
- 当我点击提交时,它会显示 connectplus.js 的原始代码,我该如何阻止这种情况发生?
解决方案
一旦尝试使用此代码。我希望它能解决你的问题
在 HTML 中使用这样的输入控件名称<input name='fname' />
<form action="http://192.168.56.152:8080/submit" method="post">
<div class="form-row">
<div class="form-group col-md-6">
<label for="firstname">Firstname</label>
<input type="text" name="fname" class="form-control" id="formfirstname" placeholder="First Name">
</div>
<div class="form-group col-md-6">
<label for="lastname">Last Name</label>
<input type="text" name="lname" class="form-control" id="formlastname" placeholder="Last Name">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="classify">Classification</label>
<input type="text" name="classification" class="form-control" id="formclassify" placeholder="Junior">
</div>
<div class="form-group col-md-4">
<label for="age">Age</label>
<select id="inputState" name="state" class="form-control">
<option selected="">16</option>
<option>17</option>
<option>18</option>
<option>18</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
</select>
</div>
<div class="form-group col-md-2">
<label for="uin">UIN</label>
<input type="number" nam="number" class="form-control" id="uin">
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
连接加号.js
var mysql = require('mysql');
var connetion = mysql.createConnection({ //creating connetion to database
host:"localhost",
user: "root",
password: "password!",
database: "student_info"
});
connetion.connect(function (err) {
if(err) throw err;
console.log("connection made!");
});
module.exports = connetion;
应用程序.js
const express = require('express');
const bodyParser = require("body-parser");
const application = express();
const database = require('./connectplus');
application.use(bodyParser.urlencoded({extended: true}))
application.use(bodyParser.json());
application.post('/submit', function(req,res) {
const firstName = req.body.fname;
const lastName = req.body.lname;
res.send('You sent the name "' + firstName + ' ' + lastName + '".');
// Later you use database query like this
// database.query('SELECT now()');
});
推荐阅读
- c# - 如何在 OnModelCreating 中减少 Fluent API 的代码
- python - 如何设置对象的 UV 纹理坐标并使用 python 计算切线空间?
- go - 如何从多个 goroutine 共享的单个通道中读取
- sql-server - SQL Server 位数组
- youtube-api - Youtube API V3;视频的最大数量只有 50?
- android - Adding fragment into framelayout cause support-actionbar hiding
- c++ - C ++ ostream没有创建新文件
- wpf - How to animate Button's Content property with Image control
- javascript - 如何区分nodejs中的文本文件和json文件
- docker - Cloud SQL 代理的 Docker 映像是什么?为什么要使用它?