0
Я начал изучать Node.js и начал делать авторизацию пользователей, но попал в тупик. Вот что я хочу реализовать:
- пользователь входит в систему
- перенаправляет его на страницу пользователя
- данные об отпуске пользователя отображаются на странице пользователя
Но я застрял на последнем пункте. Как я могу передать req.session.user в запрос get или есть другой способ? Вот мой код:
index.js
const express = require( 'express' );
const db = require( './db' );
const session = require('express-session')
const MongoStore = require('connect-mongo')(session)
const bodyParser = require( 'body-parser' );
const config = require( '../etc/config.json' );
const cors = require( 'cors' );
const controller = require( './controller/controller' );
const app = express();
app.use(session({
store: new MongoStore({ url: 'mongodb://localhost/employees' }),
secret: 'QwqYTDHJGDhGHGSDJghhsdghjGJHGdJH',
saveUninitialized: false,
resave: false
}));
app.use( bodyParser.json() );
app.use( express.static(__dirname) );
app.use( cors({ origin: '*'}) );
db.connect('mongodb://' + config.db.host + ':' + config.db.port + '/' + config.db.name , {
useNewUrlParser: true
}, function(err){
if(err) return console.log(err);
app.listen(config.serverPort, function(){
console.log("Сервер ожидает подключения...");
});
});
function loadUser(req, res, next) {
controller.checkUser(req.body)
.then(function(user){
if(user){
req.session.user = {id: user._id, name: user.login}
res.send(req.session.user)
}
})
.catch(function(error){
return next(error)
})
}
app.get("/", ( req, res ) => {
controller.vacationList().then( data => res.send(data) );
});
app.post("/", ( req, res ) => {
controller.vacationCreate(req.body).then( data => res.send(data) );
});
app.put('/:id', function (req, res){
controller.vacationChange(req.params.id, req.body).then( data => res.send(data) );
});
app.delete("/:id", ( req, res ) => {
controller.vacationDelete(req.params.id).then( data => res.send(data) );
});
app.post('/user', loadUser);
controller.js
const User = require( '../models/User' );
const ObjectID = require( 'mongodb' ).ObjectID;
exports.vacationList = function(userData) {
console.log(userData)
return User.find();
};
exports.vacationCreate = function(data) {
const user = new User ({
login: data.login,
password: data.password,
});
return user.save();
};
exports.vacationDelete = function(id) {
return User.findById(id).remove();
};
exports.checkUser = function(userData) {
return User
.findOne({login: userData.login, password: userData.password})
}