Commit 62f25d08 authored by Ibadullina Inabat's avatar Ibadullina Inabat

реализовано соединение бэка и фронта на регистрацию и логин

parent 1c5e08c3
This diff is collapsed.
......@@ -15,6 +15,7 @@
"license": "ISC",
"devDependencies": {
"@faker-js/faker": "^7.6.0",
"@types/multer": "^1.4.7",
"@types/node": "^18.11.8",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"@typescript-eslint/parser": "^5.41.0",
......@@ -34,7 +35,9 @@
"cors": "^2.8.5",
"express": "^4.18.2",
"mongoose": "^6.7.0",
"multer": "^1.4.5-lts.1",
"nanoid": "^3.3.4",
"path": "^0.12.7",
"pg": "^8.8.0",
"reflect-metadata": "^0.1.13",
"typeorm": "^0.3.10"
......
*
!.gitignore
!_ACzV5N3r69BCMdpyqmGC.png
!lDmNHjGy5I2g1mWMR-n_c.png
!ExATi9O98uKnHxJ_wqUS2.png
!Aqvv8P8AgL_1xfC93CLKp.png
!NqUZ1Tq8pxbVptmhZPKcd.png
!46AlFQI4qKG2GpuJGdKbG.png
!ip5KgNCs30o3djHb8V_GR.png
!1tlFOumiL3MmH89O8OO6H.png
!nTVRV1ZePPe7tTIdGKKfX.png
\ No newline at end of file
import path = require('path');
const rootPath = __dirname;
export const config = {
rootPath,
uploadPath: path.join(rootPath, "public", "uploads"),
db: {
url: "mongodb://localhost/",
name: "planner"
}
};
......@@ -2,10 +2,25 @@ import express,{Router, Request, Response} from 'express';
import {User} from '../models/User';
import {myDataSource} from '../app-data-source';
import { nanoid } from 'nanoid';
import multer = require('multer');
import path = require("path");
import {config} from "../config"
const router:Router = express.Router();
const dataSource = myDataSource;
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, config.uploadPath);
},
filename: (req, file, cb) => {
cb(null, nanoid() + path.extname(file.originalname));
}
})
const upload = multer({ storage })
router.get('/', async (req : Request, res : Response):Promise<object> => {
const users = await dataSource
.getRepository(User)
......@@ -15,9 +30,10 @@ return res.send({users})
})
router.post('/', async (req : Request, res : Response):Promise<object> => {
router.post('/', upload.single("avatar"), async (req : Request, res : Response):Promise<object> => {
console.log(req.body)
const {name,surname,password,email, role} = req.body;
console.log(req.body)
const displayName = surname+' '+name[0]+'.'
const user = new User();
user.name = name;
......@@ -27,10 +43,13 @@ router.post('/', async (req : Request, res : Response):Promise<object> => {
user.email = email;
user.role = role;
user.generateToken()
console.log("user " + user)
await user.save();
console.log("saved")
const userToFront:User|null = await dataSource.manager.findOneBy(User, {
email: user.email
})
console.log("userToFront " + userToFront)
return res.send({userToFront})
})
......
......@@ -62,9 +62,10 @@ const Register = () => {
const formData = new FormData();
Object.keys(state).forEach(key => {
formData.append(key, state[key]);
console.log("key " + key + "state " + state[key])
})
await dispatch(registerUser(formData, navigate));
await dispatch(loginUser(state, navigate))
// dispatch(loginUser(state, navigate))
};
const getFieldError = (fieldname) => {
......
......@@ -18,6 +18,7 @@ export const registerUser = (userData, navigate) => {
return async (dispatch) => {
dispatch(registerUserRequest());
try {
console.log("register " + userData)
const response = await axios.post("/users", userData);
dispatch(registerUserSuccess())
navigate("/")
......@@ -52,7 +53,7 @@ export const loginUser = (userData, navigate) => {
console.log(userData)
const response = await axios.post("users/sessions", userData);
console.log(response)
dispatch(loginUserSuccess(response.data));
dispatch(loginUserSuccess(response.data.user));
navigate("/")
} catch (e) {
dispatch(loginUserFailure(e?.response?.data?.err))
......
......@@ -12,11 +12,12 @@ const usersReducer = (state = initialState, action) => {
case REGISTER_USER_REQUEST:
return {...state, loading: true};
case REGISTER_USER_SUCCESS:
console.log("register.user " + action)
return {...state, loading: false};
case REGISTER_USER_FAILURE:
return {...state, loading: false, registerError: action.error};
case LOGIN_USER_SUCCESS:
console.log("action.user" + action.user)
console.log("action.user " + action)
return {...state, user: action.user};
case LOGIN_USER_FAILURE:
console.log("action.error" + action.error)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment