Узел, AngularJS, express, mongoDB basi c страница регистрации пользователя, POST не работает - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать базовую c страницу регистрации, используя node.js, express, mongoDB и AngularJS.

До того, как я попытался реализовать эту функцию регистрации, я использовал Angular маршрутизацию для своих просмотров.

См. Содержимое моего файла app.routes ниже ...

angular.module('app.routes', [])

  .config(function ($routeProvider) {
    $routeProvider
      .when("/", {
        templateUrl: "views/Login.html"
      })
      .when("/Register", {
        templateUrl: "views/Register.html"
      })
      .when("/Home", {
        templateUrl: "views/Home.html",
        controller: "homeController"
      })
      .when("/CocktailDetails", {
        templateUrl: "views/CocktailDetails.html",
        controller: "cocktailDetailsController"
      })
      .when("/Favourites", {
        templateUrl: "views/Favourites.html",
        controller: "favouritesController"
      })
      .otherwise({
        redirectTo: "/"
      })

  })

Когда приложение загружается, оно направляет пользователя на страницу входа, если у него нет учетной записи. есть ссылка на go страницу регистрации, URL для этой страницы: http://localhost: 3000 / #! / Зарегистрироваться .

Пожалуйста, посмотрите на страницу регистрации ниже ...

<div class="main">
    <p class="sign" align="center">Register</p>
    <form class="form1" action="/Register" method="POST">
        <input class="un " type="email" align="center" placeholder="Email" name="username" required>
        <input class="pass" type="password" align="center" placeholder="Password" name="password" required>
        <a class="submit" align="center">Register</a>
</div>

Поэтому, когда они нажимают ссылку / кнопку отправки, он выполняет запрос POST, чтобы создать нового пользователя в userDB.

См. Сервер. js содержимое файла ниже ...

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const app = express();
const router = express.Router();


app.use(bodyParser.urlencoded({
    extended: true
}))
app.use(express.static('node_modules'));
app.use(express.static('public'));

mongoose.connect("mongodb://localhost:27017/userDB", { useNewUrlParser: true });

const userSchema = {
    email: String,
    password: String
};

const User = new mongoose.model("User", userSchema);


//Routes

app.get("/", function (req, res) {
    res.render("Login");
});

app.get("/Register", function (req, res) {
    res.render("Register");
});

app.get("/Home", function (req, res) {
    res.render("Home");
});
app.get("/CocktailDetails", function (req, res) {
    res.render("CocktailDetails");
});
app.get("/Favourites", function (req, res) {
    res.render("Favourites");
});

app.use(router);

const port = 3000;
app.listen(port);
console.log('Server is running on port 3000');

//POSTS

app.post("/Register", function (req, res) {
    const newUser = new User({
        email: req.body.username,
        password: req.body.password
    });

newUser.save(function (err) {
    if (err) {
        console.log(err);
    } else {
        res.render("Home")
    }
});
})

Я отразил мои angular маршруты для express маршрутов.

Но когда я нажимаю кнопку регистрации, ничего не происходит, проверяя консоль, никаких ошибок, но не выполняется POST-запрос.

Что мне здесь не хватает? Я попытался изменить запросы на сервере. js, но не повезло.

Мне интересно, связано ли это с тем, что angular ставит #! на URL для каждого просмотра.

Нужно ли для HTML5 mode установить значение true в моем angular файле маршрута?

Моя файловая структура для представлений - это публичные c> представления.

На данный момент я просто пытаюсь ввести базовые c имя пользователя и пароль в базу данных, я расскажу о реализации паспорта и шифрования на более позднем этапе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...