gpt4 book ai didi

javascript - 提交表单时出现错误 Cannot POST/public/register-controller

转载 作者:搜寻专家 更新时间:2023-11-01 00:47:28 25 4
gpt4 key购买 nike

我正在使用 express js mysql 和 node js 创建和登录注册系统,所以当我点击提交按钮时,我得到一个错误:

Cannot POST /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>

我的配置文件

 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);

我的注册 Controller .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" });
});
};

我的 authenticate-controller.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"
});
}
}
});
};

所以任何帮助,为什么我的文件没有得到寄存器 Controller 的路径,我得到这个错误,请帮助我,我对 Node 和表达很陌生

最佳答案

我认为您在 html 表单中犯了一个较小的错误,您在名称中使用 eamil 而不是电子邮件,即 name="eamil"而不是 name="email",要么在这里更改它,要么更改您的名称正在调用你的 js 文件

关于javascript - 提交表单时出现错误 Cannot POST/public/register-controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57768884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com