Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const http = require('http');
- const express = require('express');
- const socketIO = require('socket.io');
- const bodyParser = require('body-parser');
- const multer = require('multer');
- const consolidate = require('consolidate');
- const session = require('express-session');
- const app = express();
- const server = http.Server(app);
- const io = socketIO(server);
- app.use(session({
- secret: 'zazagelovidzudzua', resave: false,
- saveUninitialized: true
- }))
- app.engine('html', consolidate.mustache);
- app.set('view engine', 'html');
- app.set('views', __dirname + '/views');
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({ extended: true }));
- app.use(multer().array());
- app.use(express.static('public'));
- const mongoose = require('mongoose');
- const connectionUri = 'mongodb://localhost/my_database';
- mongoose.Promise = global.Promise;
- mongoose
- .connect(connectionUri, { useNewUrlParser: true })
- .then(() => {
- console.log('Connection to database established');
- })
- .catch(error => {
- console.error('MongoDB connection error:', error.message);
- process.exit(-1);
- });
- const Schema = mongoose.Schema;
- const UserSchema = new Schema({
- username: String,
- password: String,
- email: String,
- });
- const User = mongoose.model('User', UserSchema);
- app.get('/', (req, res) => {
- res.render('mainpage');
- });
- app.get('/reg', (req, res) => {
- res.render('reg');
- });
- app.post(
- '/reeg',
- async (req, res) => {
- try {
- const username = req.body.username
- const password = req.body.password
- const email = req.body.email
- const user = await User.create({ username, password, email });
- console.log('Created user:', user)
- res.sendFile(__dirname + '/views/mainpage.html')
- }
- catch (error) {
- res.status(500).send(error.message);
- }
- });
- app.post('/login', async (req, res) => {
- try {
- const {username, password} = req.body;
- const user = await User.findOne({username}).lean();
- if (!user) {
- return res.status(404).send({
- message: 'user is not registered'
- });
- }
- if (user.password !== password) {
- return res.status(403).send({
- message: 'user password invalid'
- });
- }
- req.session.user = user;
- const redirectTo = '/dash';
- if (
- req.is('application/json') // request content type is json
- || // or
- req.xhr // is ajax
- ) {
- // respond with json response
- return res.status(200).status({redirectTo});
- }
- // not ajax request
- // then respond redirect header
- res.redirect(redirectTo);
- }
- catch (error) {
- res.status(500).send({
- message: error.message
- });
- }
- });
- app.get('/dash',
- async (req, res) => {
- try{
- if (!req.session.user) {
- res.status(401).send('login first please!')
- }
- res.status(200)
- res.send('Hi ' + req.session.user.username)
- }catch(error){
- console.log(error.message)
- return res.status(500)
- }
- })
- server.listen('8080');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement