Node.js - validaciones en node con express con schema

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 14 puestos en Node.js (en relación al último mes)
Gráfica de Node.js

validaciones en node con express con schema

Publicado por Paloma (2 intervenciones) el 08/06/2021 17:15:27
Buenas tardes,

Tengo un ejercicio en que tengo que validar y creo que no me coge bien las validaciones:

Este es mi archivo index.js y me funciona, pero las validaciones no las coge

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//incluyo express//
const express = require('express')
    //incluyo cors//
const cors = require('cors')
    //incluyo mongoose//
const mongoose = require('mongoose')
const { Schema, model } = mongoose
//la app será igual a ejecutar express//
const app = express()
const { checkSchema } = require('express-validator');
 
//conecto  node con mongo//
mongoose.connect('mongodb://localhost/angular-users', {
        useUnifiedTopology: true,
        useNewUrlParser: true,
        useFindAndModify: false
    })
    .then((res) => { console.log(`Nos hemos conectado a Mongo`) })
    //generamos nuevo esquema//
const UserSchema = new Schema({
        name: { type: String },
        surname: { type: String },
        age: { type: String },
        dni: { type: String },
        birthday: { type: String },
        colour: { type: String },
        sex: { type: String }
 
    })
    //lo convertimos en un modelo de datos llamado user que cogerá el esquema userschema//
const User = model('user', UserSchema);
 
app.use(cors()) //decimos que la app use cors//
    .use(express.urlencoded({ extended: true })) //vamos a usar de express el urlencode para que haga el body parser//
    .use(express.json()) //que use los datos json de express//
    //definimos puerto 5000 desde el que esté escuchando//
    .listen(5000, () => {
        console.log('Iniciando server')
    })
    //recogemos todos los datos de mongo//
app.get('/users', async(req, res) => {
    const users = await User.find()
    res.json(users)
})
app.post('/user', checkSchema({
        name: {
            isLength: { min: 3 },
            isAlpha: true
        },
        surname: {
            isLength: { min: 3 },
            isAlpha: true
        },
        age: {
            isFloat: { min: 0, max: 125 }
        },
        dni: {
            isLength: { min: 9, max: 9 },
            isAlphanumeric: true
        },
        birthday: {
            isISO8601: true
        },
        colour: {
            isLength: { min: 3 },
            isAlpha: true
        },
        sex: {
            isIn: {
                options: [
                    ['Hombre', 'Mujer', 'Otro', 'No especificado']
                ]
            }
        },
    }),
    async(req, res) => {
        const nuevoUsuario = new User(req.body)
        await nuevoUsuario.save()
        res.json({ mensaje: "Usuario creado" })
    })
 
 
app.put('/user/:id', async(req, res) => {
    const userUpdated = await User.findByIdAndUpdate(req.params.id, req.body)
    res.json({ status: "Usuario actualizado" })
})
app.delete('/user/:id', async(req, res) => {
    const userDeleted = await User.findByIdAndDelete(req.params.id)
    res.json({ status: "Usuario eliminado" })
})
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

validaciones en node con express con schema

Publicado por Isaac Grimaldo (4 intervenciones) el 05/11/2021 12:18:04
Creo que la configuración del error para los argumentos del shema del objeto aquí tienes un ejemplo https://github.com/isaacgrimaldo/ApiREST/blob/main/Models/Products.js y aquí un ejemplo de implementación del express-validator https://github.com/isaacgrimaldo/ApiREST/tree/main/Middlewares, si le pudieras dar un vistazo al repo y ver como trabaja todo esto junto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar