gpt4 book ai didi

jquery - 使用node.js向mysql数据库添加数据

转载 作者:行者123 更新时间:2023-11-29 11:00:04 24 4
gpt4 key购买 nike

我是编程新手,正在尝试使用 Node.js 创建一个基本应用程序。

我在 Visual Studio 上使用 Node.js,使用 html 而不是 Jade。我有一个简单的表格,其中包含姓名和性别。我还设法用 mysql 工作台建立了一个数据库。

我有以下查询,当我运行代码时,它成功地将姓名和性别添加到 mysql 数据库。

var user = { "name": "Name", "surname": "Surname", "gender" : "M" };
connection.query('INSERT INTO studentinfo SET ?', user, function (err, res) {
if (err) throw err;
});

但是当我单击提交按钮时必须从表单中收集数据时,我陷入了困境。

我猜这与 Ajax 有关,我找到了一些使用 php 的解决方案,但我正在努力寻找使用 Node.js 的解决方案以及如何以及在何处实现代码。

这是 app.js 文件

/**
* Module dependencies.
*/

var express = require('express');
var routes = require('./routes');
var http = require('http');
var path = require('path');
var mysql = require('mysql');

var app = express();

var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'my_password',
database: 'userlist',
});

connection.connect();

var user = { "name": "RandomName", "surname": "RandomSurnameName", "gender" : "M" };
connection.query('INSERT INTO studentinfo SET ?', user, function (err, res) {
if (err) throw err;


});



//connection.query('SELECT * FROM studentinfo', function (err, rows) {
// if (err) throw err;

// console.log('Data received from Db:\n');
// console.log(rows);
//});





// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/about', routes.about);
app.get('/contact', routes.contact);
app.get('/newStudent', routes.newStudent);

http.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});


var createStudent = {

name: String,
surname: String,
dob: Date,
gender: String,

}


connection.query('insert into userlist set ?', createStudent, function (err, result) {

});

最佳答案

好吧,让我们试一试。

在 HTML 页面上,您需要提交学生详细信息。一个非常非常基本的表单如下所示:

<form action="/student" method="post">
First name:<br>
<input type="text" name="name"<br>
Last name:<br>
<input type="text" name="surname"><br>
Date of birth:<br>
<input type="text" name="dob"<br>
Gender:<br>
<input type="text" name="gender"><br><br>
<input type="submit" value="Submit">
</form>

这显然过于简单化了,但它可以解决问题。因此,您有一些框和一个按钮,可以将此数据 POST 到您的服务器 /student 路由。

现在我们需要在 Express 服务器上处理该路由。您已经有 GET 路由,因此添加以下内容:

app.post('/', function (req, res) {
// this is where you handle the POST request.
var createStudent = {
name: req.body.name,
surname: req.body.surname,
dob: req.body.dob,
gender: req.body.gender
}
// now the createStudent is an object you can use in your database insert logic.
connection.query('INSERT INTO studentinfo SET ?', createStudent, function (err, resp) {
if (err) throw err;
// if there are no errors send an OK message.
res.send('Saved succesfully');
});
});

关于jquery - 使用node.js向mysql数据库添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42423263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com