【发布时间】:2017-07-14 09:04:09
【问题描述】:
我是编程新手,正在尝试使用 node.js 创建一个基本应用程序。
我在 Visual Studio 上使用 node.js 与 html 而不是玉。我有一个简单的表格,上面有名字、姓氏和性别。我还设法用 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) {
});
【问题讨论】:
-
你能告诉我们更多关于代码/设置的信息吗?你的页面是什么样的?你的服务器是什么样的?
-
我现在不在系统中,但我只是从默认的快速模板开始,并添加了这个简单的表单来学习如何将值输入数据库。另外,我没有得到你关于服务器的问题。你能详细说明一下吗?
-
我不确定您在哪里需要帮助。是将值从表单提交到 express 服务器,在服务器上创建路由来处理提交,从路由处理程序调用控制器方法,还是以上所有?
-
这个术语对我来说太高级了。简而言之,我只是想在按下“提交”按钮时将输入字段中的“姓名”和“姓氏”传输到数据库中。
-
您可能应该阅读基本教程,因为要做到这一点需要做很多事情。
标签: jquery mysql node.js visual-studio ajaxform