Express.js два маршрута, такие как регистрация и вход в одном модуле - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужна помощь при размещении различных функций, таких как регистрация, вход, удаление профиля, редактирование профиля, в одном файле с именем Users in express.

Я поставил регистрацию поверх '/' и теперь не могу найти способ перейти к функции входа в файле пользователя.

для регистрации, я использовал экспресс-метод как app.use('/signup' , Users) и я хотел знать, как мне теперь получить доступ к функции входа в систему

//this is the code in Users.js file
router.post("/", (req, res) => {
  var user = new User();
  user.name = req.body.name;
  user.DOB = req.body.DOB;
  user.email = req.body.email;
  user.city = req.body.city;
  user.password = req.body.password;
  user.gender = req.body.gender;
  user.image = req.body.image;
  user.Phone = req.body.PhoneNumber;
  user.MsgNumber = req.body.MsgNumber;
  user.about = req.body.about;
  user.JoinDate = new Date;
  user.save(function(err, result) {
    if (err) {
      res.json({
        status: err
      })
    } else {
      res.json({
        status: 'ok'
      });
    }
  });
});

//now the second function of signin
router.post("/signIn", passport.authenticate("local"), (req, res) => {
      if (usernotfound == 0) {
        res.send(JSON.stringify(req.user));
      } else {
        res.send('Not Found')
      }



// here is the code from the main server js file to send data to these functions

app.use('/signUp', users)
app.use('/signin', users)

{регистрация включена в '/', так что она вызывается непосредственно как корневая функция. теперь как я могу получить доступ к функции входа}

1 Ответ

0 голосов
/ 03 сентября 2018

Не совсем уверен, что вы ищете, но вы используете один и тот же обработчик для разных маршрутов, когда делаете это:

app.use('/signUp', users)
app.use('/signin', users)

Здесь вы выражаете экспресс: "Я хочу, чтобы то же самое происходило, когда пользователи заходят в систему и входят в систему"

Вы можете настроить маршрутизацию пользователей в одном файле, но обработчики должны быть другими.

index.js

const epxress = require('express')
const userRouter = require('./users')
const app = express()


app.use('/users, userRouter)

Индексный файл - это простое экспресс-приложение, для которого требуется user.js

users.js

const expreess = require('express')
const router = express.Router()

router.post("/signIn", passport.authenticate("local"), (req, res) => {
   // Your code for signing in
})

router.post('/signUp', (req, res) => {
  // your code for signing up
})

module.exports = router    

Таким образом, users.js - это простой экспресс-маршрутизатор. Таким образом, теперь посетители могут переходить в / users / signIn и / users / signUp - в основном они переходят в '/ users' и перенаправляются в файл user.js, для которого определены другие маршруты / signIn и / signUp, поэтому полный путь становится / users / вход и / пользователи / вход

Другим способом было бы экспортировать два обработчика в ваш файл users.js. Что-то вроде

index.js

app.post('/signIn', users.signIn)
app.post('/signUp', users.signUp)

А потом в вашем users.js

exports.signIn = function(req, res) {
  // Your code for signin in
}

exports.signUp = function(req, res) {
  // Your code for signing up
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...