2013-11-24 46 views
1

在我的节点应用程序中,我试图将数据插入到mysql数据库中。我下面这个教程Node.js + mysql数据未进入数据库

http://www.tutorialindustry.com/node-js-mysql-tutorial-for-beginners

我的代码:

var express = require('express') 
, http = require('http') 
, mysql = require('mysql') 
, path = require('path'); 
var app = express(); 
// all environments 
app.set('port', process.env.PORT || 3002); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.get('/', function(req, res) { 
res.render('index'); 
}); 
//connect to mysql database 
/*var connection = mysql.createConnection({ 
host : '127.0.0.1', 
user : 'root', 
password : 'root', 
database : 'nodejsmysql' 
}); 
connection.connect();*/ 

var connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : 'root', 
    database : 'nodejsmysql', 
    debug : true, 
}) 
connection.connect(function(err) { 
    if (!err) { 
     console.log("Connected to MySQL"); 
    } else if (err) { 
     console.log(err); 
    } 
}); 
app.get('/users', function (req, res) { 
connection.query('select * from nodejs', function(err, docs) { 
res.render('users', {users: docs}); 
}); 
}); 
// Add a new User 
app.get("https://stackoverflow.com/users/new", function (req, res) { 
res.render("new"); 
}); 
// Save the Newly created User 
app.post("/users", function (req, res) { 
var fname=req.body.fname; 
var lname=req.body.lname; 
console.log("qqqqqqqqqq") 
connection.query('INSERT INTO nodejs (fname, lname) VALUES (? , ?);' , [fname, lname], function(err, docs) { 
if (err) res.json(err); 
res.redirect('users'); 
}); 
}); 
http.createServer(app).listen(app.get('port'), function(){ 
console.log('Express server listening on port ' + app.get('port')); 
}); 

不扔任何error.but的的数据都是未进入数据库。

+0

添加新用户页面是否重定向? – matth

+0

是redtirected..Also我输入的值,然后单击“AddNewUser”,但该条目不输入到MySQL数据库.. – Subburaj

+0

您还创建了一个新的数据库/表?我复制了上面的代码(跟随本教程的其余部分),并且对我来说工作正常。通过“做这个页面重定向”,我的意思是,一旦你点击“添加新用户”(在填写名字/姓氏之后),它实际上重定向到“正在显示所有用户”页面,是否正确?只是想排除我有的模板问题。 – matth

回答

0

由于您正在使用的教程的格式化存在问题。具体来说,对于views/new.jade文件,有些缩进是需要,否则表单将不会被提交。查看下面的模板是如何打算:

h1 Add new User 

form(method="POST" , action="/users") 
    p FirstName: 
    input#title(type="text" , name="fname") 
    p LastName: 
    input#body(type="text" , name="lname") 

    p: button(type="submit") Add New User 

查看/ index.jade:

extends layout 

block content 
    p Welcome to nodejs mysql tutorial 
    p 
    a(href='/users') Show All users 

查看/ users.jade:

h1 Showing All Users 

ul 
- each user in users 
    li User FirstName: #{user.fname} 
    li User LastName: #{user.lname} 
hr 

a(href="users/new") Add New User 
br 
a(href="/") Home 

如果你想知道更多,它看起来像Jade website有一些有用的信息/教程。

+0

感谢making3..Now其重定向..但在users.jade中显示一些问题..可以请发布适当的缩​​进users.jade文件.. – Subburaj

+0

忘了我也修正了这些。我已经更新了答案。 – matth

+0

谢谢很多人..现在它的工作..但为什么教程网站没有正确引导...还有它可能转换输出(所有用户)以json格式显示..指导我,如果有一些想法.. – Subburaj