2014-07-07 44 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請求。