Я изучал некоторые Node.js и пытался создать программу, в которой вы вводите имя пользователя и пароль, и она сверяется с базой данных MySQL. Я не знаю, правильно ли я делаю весь бизнес аутентификации, но мой вопрос заключается в следующем: Можете ли вы вызвать функцию MySQL после начала кода (т.е. при каком-либо вызове функции).
Можете ли вы выполнить действие MySQL при вызове функции?
Я смотрел в Интернете и задавал разные вопросы о переполнении стека, но все еще не совсем понял. Возможно, мне не хватает трюка с тем, что на самом деле делает Node.js.
Это мой код:
HTML:
<html>
<head>
<title>Basic User Information</title>
</head>
<body>
<form action="http://localhost:8888/user" method="POST">
Username: <input type="text" name="username"> <br>
Password: <input type="text" name="password"> <br></select>
<input type="submit" value="submit">
</form>
</body>
</html>
Node.js:
//import the express module
var express = require('express');
//import body-parser
var bodyParser = require('body-parser');
//store the express in a variable
var app = express();
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "password"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
con.query("CREATE DATABASE authtest", function (err, result) {
if (err) throw err;
console.log("Database created");
});
con.query("CREATE TABLE users (username VARCHAR(255), password VARCHAR(255))", function (err, result) {
if (err) throw err;
console.log("Table created");
});
});
//configure body-parser for express
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
//allow express to access our html (index.html) file
app.get('/index.html', function(req, res) {
res.sendFile(__dirname + "/" + "index.html");
});
//route the GET request to the specified path, "/user".
//This sends the user information to the path
app.post('/user', function(req, res){
response = {
username : req.body.username,
password : req.body.password
};
//this line is optional and will print the response on the command prompt
//It's useful so that we know what information is being transferred
//using the server
console.log(response);
//convert the response in JSON format
res.end(JSON.stringify(response));
con.connect(function(err) {
if (err) throw err;
var sql = "INSERT INTO users (username, password) VALUES (response.username, response.password)";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});
});
//This piece of code creates the server
//and listens to the request at port 8888
//we are also generating a message once the
//server is created
var server = app.listen(8888, function(){
var host = server.address().address;
var port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});
Edit:
Должен ли я сделать это в другом сценарии? Итак, есть один для инициализации страницы и один для вставки данных в базу данных MySQL?