首页 > 解决方案 > 我的 node.js 用户注册不适用于“/auth/registration”,但适用于“/registration”

问题描述

我收到错误无法/auth/auth/register使用我的代码发布,但是当我更改
app.get('/auth/register')代码app.get('/register')时工作正常。谁能告诉我问题出在哪里,如果有人帮助我解决问题,那将是一个很大的帮助。

我曾尝试更改app.get('/auth/register')为其他路线,例如 ('/create/registration')、app.get('/Registering/user')但它不起作用。我应该只使用app.get('/userRegister')app.get('createNewUser')app.get('goodRegister')

const express = require('express');
const expressEdge = require('express-edge');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const userController = require('./controllers/createUser');
const storeUserController = require('./controllers/storeUser');

const app = new express();

app.get('/auth/register', userController);
app.post('/users/register', storeUserController);

const User = require('../database/models/User')

}

//my controller
module.exports = (req, res) => {
User.create(req.body, (error, user) => {

    res.redirect('/')

})

}

//my database model
  const bcrypt = require('bcrypt');
const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({

username: {
    type: String,
    required: true
},

email: {
    type: String,
    required: true,
    unique: true

},
password: {
    type: String,
    required: true
}

})

UserSchema.pre('save', function(next) {
const user = this
bcrypt.hash(user.password, 10, function(error, encrypted) {
    user.password = encrypted
    next()
})
})

module.exports = mongoose.model('User', UserSchema);  



app.listen(4000, () => {
console.log("application listening on port 4000")

})

//my view
<form action="users/register" method="POST"  encType="multipart/form-data">

标签: javascriptnode.jsmongoose

解决方案


我自己已经解决了这个问题。感谢大家抽出时间检查并给出一个或另一个解释。代码的问题是我的控制器的路径。文件名不应该是Useruser所以我改成in otherconst User = require('../database/models/User')const User = require('../database/models/User')匹配 database/model 目录下的文件名


推荐阅读