我正在NodeJS中创建一个简单的注册表,我收到此错误"无法发布/注册"。我想在NodeJS中实现MVC account_controller是我的控制器脚本,User.js模型脚本,Register.html是我的观点。
所以这些是我的代码,
Register.html
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/login-reset.css">
<link rel='stylesheet prefetch' href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'>
<link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'>
<link rel="stylesheet" href="/login-style.css">
</head>
<body>
<div class="pen-title">
<h1> Please Fill In The Blanks..</h1>
</div>
<div class="module form-module">
<div class="toggle"><i class="fa fa-times fa-pencil"></i>
</div>
<div class="form">
<h2>Create an account</h2>
<form id="frm" action="/Register" method="post">
<input type="text" placeholder="Username" name="username"/>
<input type="password" placeholder="Password" name="password"/>
<input type="email" placeholder="Email Address" name="email"/>
<button>Register</button>
</form>
</div>
</div>
App.js
var express = require('express');
var app = express();
var path = require('path');
var mongoose = require('mongoose');
var http = require('http').Server(app);
var io = require('socket.io')(http);
/**
* Controllers (route handlers).
*/
const accountController = require('./controller/account_controller');
/**
* Connect to MongoDB.
*/
mongoose.connect('mongodb://localhost:27017/chatdb');
mongoose.connection.on('error', () => {
console.error('MongoDB Connection Error. Please make sure that MongoDB is running.');
process.exit(1);
});
app.use(express.static(__dirname + '/views'));
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/models'));
app.get('/', function (req, res) {
res.sendFile('index.html');
});
app.get('/', function (req, res) {
res.sendFile('Login.html');
});
app.get('/', function (req, res) {
res.sendFile('Register.html');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
io.on('connection', function(socket){
console.log('User Connected..');
socket.on('disconnect', function(){
console.log('User Disconnected..');
});
socket.on('chat', function(msg){
console.log('Mesaj: ' + msg);
io.emit('chat', msg);
});
});
module.exports = app;
account_controller.js
const User = require('../models/Users');
/**
* POST /signup
* Create a new local account.
*/
exports.postSignup = (req, res, next) => {
req.assert('email', 'Email is not valid').isEmail();
req.assert('password', 'Password must be at least 4 characters long').len(4);
req.sanitize('email').normalizeEmail({ remove_dots: false });
const errors = req.validationErrors();
if (errors) {
req.flash('errors', errors);
return res.redirect('/Register');
}
const user = new User({
email: req.body.email,
password: req.body.password,
username: req.body.username
});
User.findOne({ email: req.body.email }, (err, existingUser) => {
if (existingUser) {
req.flash('errors', { msg: 'Account with that email address already exists.' });
return res.redirect('/Register');
}
user.save((err) => {
if (err) { return next(err); }
req.logIn(user, (err) => {
if (err) {
return next(err);
}
res.redirect('/');
});
});
});
};
这是我的模型脚本User.js
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
email: { type: String, unique: true },
password: String,
username: String
});
const User = mongoose.model('User', userSchema);
module.exports = User;
感谢您的帮助。
答案 0 :(得分:0)
您没有设置/Register
路线。您目前只有3条路线,都使用相同的路径(/
)。我的猜测是其中两个是拼写错误(第一个是真正的/
路由处理程序,因为它正在提供index.html)。