Executando verificação de segurança...
1

Como criar um cadastro de usuario? Me ajudem dando dicas

Estou criando um pequeno crud de usuarios e me bateu uma duvida estou desenvolvendo corretamente? Gostaria que pudessem me dar um norte e me ajudar a como desenvolver ,eu crud.

Contexto: É uma rota feita em nodejs com ts, express, knex e pg. Resgistra um usuario e salva informações em duas tabelas.

Segue o banco

CREATE TABLE "usuario_login" (
  "id_usuario" serial PRIMARY KEY,
  "nome_usuario" varchar(255) NOT NULL,
  "senha_usuario" varchar(255) NOT NULL
);

CREATE TABLE "usuario_info" (
  "id" serial PRIMARY KEY,
  "id_usuario" integer,
  "nome" varchar(255),
  "data_cadastro" timestamp DEFAULT 'current_timestamp',
  "pontos" integer,
  "email" varchar(255),
  "github" varchar(255),
  "linkedin" varchar(255)
);

Segue o código que desenvolvi para fazer o registro:

import { Request, Response } from "express";
import { knex } from "../config/conexaoDB";
import { hashSync } from "bcrypt";

export const registro = async (request: Request, response: Response) => {
    const { nome_usuario, senha_usuario } = request.body
    const { nome, email, github, linkedin } = request.body

    try {
        const salt: number = Number(process.env.SALT)
        const senha = hashSync(senha_usuario, salt)

        const id = await knex('usuario_login')
            .insert({
                nome_usuario,
                senha_usuario: senha
            }).returning('id_usuario')

        const user = await knex('usuario_info')
            .insert({
                id_usuario: id[0].id_usuario,
                nome,
                pontos: 0,
                email: email || '',
                github: github || '',
                linkedin: linkedin || '',
            }) .returning('*')

        return response.status(201).json(user)

    } catch (error) {
        console.log(error)
        return response.status(500).json({Mensagem: "Erro interno do servidor!"})
    }
}

export const login = async (request: Request, response: Response) => {

}

Aceito todo tipo de dicas para melhorar meu desenvolvimento.

Carregando publicação patrocinada...
1

Se for para um projeto sério, você tem problemas em colocar tudo dentro da definição das rotas, não tem um controller, service, repository... colocar tudo em uma função apenas é bem tentador mas a manutenção e entendimento do código é horrível e custoso.

Além disso, não há qualquer validação dos dados informados. Nunca confie nos dados vindos de fora da sua aplicação.

1