javascript - 使用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 响应,即“用户成功注册”,但它会继续加载。
解决方案
尝试将 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);
};
推荐阅读
- gradle - “此处不得使用插件 {} 块。如果您需要强制应用插件”究竟是什么?
- reactjs - 在 React 中为页脚创建超链接
- asp.net-core - 在 Blazor WASM 中获取原始 oauth 令牌?
- java - JAVA parse properties file with similar numbered keys
- reactjs - 在 React 中只渲染一次函数
- python - 使用 pandas,如何检查列中是否存在特定序列?
- c - 输出是什么,为什么函数中的指针不会影响代码?
- python - 如何在熊猫数据框滚动窗口中添加一个步骤
- css - 是否可以使用 CSS 在移动设备上将图像从纵向更改为横向?
- owl - 如何在 Protegé 中加入来自 2 个不同本体的等效类?