首页 > 解决方案 > 使用Nodejs + express登录注册,用户数据未定义

问题描述

我有一个简单的注册页面,它应该将用户输入(姓名、电子邮件、密码)存储在数据库中。我正在使用快递和节点。我想尝试的是将所有数据库操作(插入、选择等)注册到一个文件中,并将响应从另一个文件发送到服务器。

dbQuery.js

var express=require("express");
var app = express();
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'user_name',
  password : 'password',
  database : 'database'
});
connection.connect(function(err){
if(!err) {
    console.log("Database is connected");
} else {
    console.log("Error while connecting with database");
}
});

 module.exports.register=function(callback){
 app.get('/register',function(req,res){
  var today = new Date();
    var users={
        "name":req.body.name,
        "email":req.body.email,
        "password":req.body.password,
        "created_at":today,
        "updated_at":today
    }
      return connection.query('INSERT INTO users SET ?',users, callback) 
}
}

应用程序.js

var express=require("express");
var connection = require('./dbQuery');
var app = express();
app.post('/register',function(req,res){
  connection.register(function(error, results, fields){
   if (error) {
        res.json({
            status:false,
            message:'there are some error with query for registration'
        })
      }else{
        console.log('is it coming here in else')
          res.json({
            status:true,
            data:results,
            message:'user registered sucessfully'
        })
      }
    })
})

索引.html

<html>  
    <body>  
        <form action="/register" method="POST">  
            First Name: <input type="text" name="name">  

            Email: <input type="text" name="email">
            Password: <input type="password" name="password">

            <input type="submit" value="Submit">  
        </form>
    </body>  
</html> 

当我执行 app.js 时,服务器只是继续加载而不提供任何东西

我希望输出应该在服务器上显示 json 响应,即“用户成功注册”,但它会继续加载。

标签: javascriptmysqlnode.jsexpress

解决方案


尝试将 dbQuery.js 更改为:

var mysql = require("mysql");
var connection = mysql.createConnection({
  host: "localhost",
  user: "user_name",
  password: "password",
  database: "database"
});
connection.connect(function(err) {
  if (!err) {
    console.log("Database is connected");
  } else {
    console.log("Error while connecting with database");
  }
});

module.exports.register = function(callback) {
  var today = new Date();
  var users = {
    name: req.body.name,
    email: req.body.email,
    password: req.body.password,
    created_at: today,
    updated_at: today
  };
  connection.query("INSERT INTO users SET ?", users, callback);
};

推荐阅读