2014-07-07 105 views
0

我非常喜欢node.js的初学者。无法在node.js中发布表单

有与我想在数据库 -

这里插入值的样表是我测试的页面级

<form action="/create" method="POST" class="form-horizontal" enctype="application/x-www-form-urlencoded"> 
    <input type="text" id="username_input" name="username"> 
    <input type="text" id="password_input" name="password"> 
    <input type="submit" name="Submit" value="Insert" class="btn"> 
</form> 

尝试后它 -

我创建test.js文件和写入文件的方法 -

exports.list = function (req, res) { 
    req.getConnection(function (err, connection) { 
     console.log(con) 
     app.post("/create", function (req, res) { 
      var username = req.body.username, 
    password = req.body.password; 
      console.log(username); 
      console.log(password); 

      connection.query('INSERT INTO users(email,password) VALUES', (username, password), function (err, rows) { 

       if (error) { 

        console.log(error.message); 
       } else { 
        console.log('succes'); 

       } 

      }); 

     }); 
    }); 
} 

但这没有奏效。 我试图在主server.js写POST方法文件须─

app.post("/create", function (req, res) { 
     var username = req.body.username, 
password = req.body.password; 
     console.log(username); 
     console.log(password); 

     connection.query('INSERT INTO users(email,password) VALUES', (username, password), function (err, rows) { 

      if (error) { 

       console.log(error.message); 
      } else { 
       console.log('succes'); 

      } 

     }); 

    }); 

,但这也没工作。

我在server.js文件 -

/** 
* Module dependencies. 
*/ 

var express = require('express') 
    , routes = require('./routes') 
    , index_form = require('./routes/index_form') 
    , user = require('./routes/user') 
    , test = require('./routes/test') 
    , mysql = require('mysql') 
    , http = require('http') 
    , path = require('path') 
    , mongoose = require('mongoose'); 

var connection = mysql.createConnection({ 
    host: 'localhost', 
    user: 'root', 
    password: '[email protected]' 
}); 

var app =express(); 

app.configure(function() { 
    app.set('port', process.env.PORT || 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'ejs'); 
    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.configure('development', function() { 
    app.use(express.errorHandler()); 
}); 

app.get('/', routes.index); 
app.get('/test', test.test); 
app.get('/users', user.list); 
app.get('/index_form', index_form.index_form) 

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

请指引我通过这一切之后的当前设置,如何让我的表格后与node.js的?

+1

“这不起作用”不会帮助我们和你。告诉我们当您尝试在浏览器中执行* POST *时发生的情况。服务器的控制台输出是什么?浏览器的输出是什么?尝试捕获浏览器的网络通信(使用开发工具)。 – alandarev

+0

@alandarev,控制台里什么都没有,它只是告诉我'不能POST /创建'消息。 – user3163213

+1

添加一些console.log语句以查看是否正在执行代码,以及是否 - 流停止的位置。什么是“不能发布/创建”的消息?它是什么*?浏览器?浏览器不会像404一样返回编码错误?查看浏览器开发工具中的响应状态,如果它是** 200 **,那么显然你的服务器工作。 – alandarev

回答

1

您是否尝试将app.post("/create", test.test);放入您当前的server.js之后?因为我在这里看到您当前的server.js没有任何POST请求。