javascript - 提交表单时出现错误无法 POST /public/register-controller
问题描述
我正在使用 express js mysql 和 node js 创建和登录注册系统,所以只要我点击提交按钮,我就会收到一个错误:
无法发布 /public/register-controller
我的 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>SignUp</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="style.css" rel="stylesheet">
<link href="signup.css" rel="stylesheet">
</head>
<body>
<header class="masthead">
<div class="boards-menu"></div>
<div class="logo">
<h1><i class="fab fa-trello logo-icon" aria-hidden="true"></i>Trello</h1>
</div>
</header>
<section class="signup-login">
<form action="/public/register-controller" method="POST">
<div class="username">
<input type="text" placeholder="User Name" name="name"></input>
</div>
<div class="username">
<input type="email" placeholder="Email" name="eamil"></input>
</div>
<div class="username">
<input type="password" placeholder="Password" name="password"></input>
</div>
<div class="button-signup-login">
<button class="add-card-btn btn">Sign Up</button>
<a class="signup-navigator" href="login.html">already a
user?</a>
</div>
</form>
</section>
</body>
</html>
我的 config.js
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'trello',
password: 'trello',
database: 'trello'
});
connection.connect(function (err) {
if (!err) {
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
}
});
module.exports = connection;
我的 index.js
var express = require("express");
var path = require('path');
var bodyParser = require('body-parser');
var connection = require('./config');
var app = express();
var authenticateController = require('./public/authenticate-controller');
var registerController = require('./public/register-controller');
var dir = path.join(__dirname, 'public');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(dir));
/* route to handle login and registration */
app.post('/api/register', registerController.register);
app.post('/api/authenticate', authenticateController.authenticate);
console.log(authenticateController);
app.post('/public/register-controller', registerController.register);
app.post('/public/authenticate-controller', authenticateController.authenticate);
app.listen(8012);
我的注册控制器.js
var connection = require('/home/codemymobile/study/trello/config');
var Cryptr = require('cryptr');
var express = require("express");
var cryptr = new Cryptr('myTotalySecretKey');
module.exports.register = function (req, res) {
var encryptedString = cryptr.encrypt(req.body.password);
var sql = 'insert into users(name, email, password) values ?';
var values = [[req.body.name, req.body.email, encryptedString]];
connection.query(sql, [values], function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
res.status(200).send({ error: false, message: "User has been created successfully" });
});
};
我的身份验证控制器.js
var Cryptr = require('cryptr');
cryptr = new Cryptr('myTotalySecretKey');
var connection = require('./../config');
module.exports.authenticate = function (req, res) {
var email = req.body.email;
var password = req.body.password;
connection.query('SELECT * FROM users WHERE email = ?', [email], function (error, results, fields) {
if (error) {
res.json({
status: false,
message: 'there are some error with query'
});
} else {
if (results.length > 0) {
decryptedString = cryptr.decrypt(results[0].password);
if (password == decryptedString) {
res.json({
status: true,
message: 'successfully authenticated'
});
} else {
res.json({
status: false,
message: "Email and password does not match"
});
}
}
else {
res.json({
status: false,
message: "Email does not exits"
});
}
}
});
};
所以任何帮助说明为什么我的文件没有获得 register-contoller 的路径并且我收到此错误,请帮助我,我对节点和表达很陌生
解决方案
我认为您犯了一个较小的错误,即在您使用 eamil 而不是名称中的电子邮件的 html 表单中,即 name="eamil" 而不是 name="email",要么在此处更改它,要么更改您正在调用的名称你的js文件
推荐阅读
- tensorflow - 如何在tensorflow对象检测api中为不同检测类可视化具有不同min_thres值的框和标签?
- haskell - haskell 中的 foldl(多级 foldl)问题
- php - 403 Forbidden - 拒绝访问服务器上的此资源 - PHP
- macos - 通过 WiFi 进行 Internet 共享时如何在 Mac 上查看连接的 IP 地址
- html - 错误消息“drive.google.com 拒绝连接”。
- email - 如何使用 postfix 在 Ubuntu 16.04 上设置邮件服务器
- css - CSS,Stylus:有条件的“else”被忽略
- python - 如何根据 anotehr 单选按钮值禁用 django 表单单选按钮
- vtk - 如何使用 pyqt6 添加 vtk/pyvista 窗口?
- python - django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。当我尝试在heroku上的consumers.py中导入模型时