Conectar la base de datos
utilizaremos mongoose
https://mongoosejs.com/
https://www.npmjs.com/package/mongoose
1. instalar la libreria:
https://www.npmjs.com/package/mongoose
npm i mongoose --save
copiamos la siguiente linea:
2. pegar la linea:
mongoose;
CREAR UNA CARPETA Q SE LLAME: routes en la raiz del proyecto
y crear un archivo que se llame usuarios.js dentro de la misma.
pegar rutas de metodos get, delete, post y put dentro del archivo quedando asi:
3.y agregar la linea: app.use(require('./routes/usuario'));
en el archivo server.js
4. Crear la carpeta models en la carpeta server
y crearemos un archivo llamado usuario.js
https://www.npmjs.com/package/mongoose-unique-validator , creamos el schema.
En usuario.js de routes se debe importar el Usuario models.
Encriptación de la contraseña: https://www.npmjs.com/package/bcrypt
npm i bcrypt --save
Agregar en el usuario.js (routes)
utilizaremos mongoose
https://mongoosejs.com/
https://www.npmjs.com/package/mongoose
1. instalar la libreria:
https://www.npmjs.com/package/mongoose
npm i mongoose --save
copiamos la siguiente linea:
// Using Node.js `require()`const mongoose = ;
require('./config/config');
const express = require('express')
// Using Node.js `require()`
const mongoose = require('mongoose');
const app = express()
const bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.get('/usuario', function(req, res) {
res.json('get usuario')
})
//crear nuevos registros
app.post('/usuario', function(req, res) {
let body = req.body;
if (body.nombre === undefined) {
res.status(400).json({
ok: false,
mensaje: 'El nombre es necesario'
});
} else {
res.json({
body: body
})
}
})
//actualizar
app.put('/usuario/:id', function(req, res) {
let id = req.params.id;
res.json({
id
})
})
app.delete('/usuario', function(req, res) {
res.json('delete usuario')
})
app.listen(process.env.PORT, () => {
console.log("Escuchando el puerto ", process.env.PORT);
})
2. pegar la linea:
mongoose;
require('./config/config');
const express = require('express')
// Using Node.js `require()`
const mongoose = require('mongoose');
const app = express()
const bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.get('/usuario', function(req, res) {
res.json('get usuario')
})
//crear nuevos registros
app.post('/usuario', function(req, res) {
let body = req.body;
if (body.nombre === undefined) {
res.status(400).json({
ok: false,
mensaje: 'El nombre es necesario'
});
} else {
res.json({
body: body
})
}
})
//actualizar
app.put('/usuario/:id', function(req, res) {
let id = req.params.id;
res.json({
id
})
})
app.delete('/usuario', function(req, res) {
res.json('delete usuario')
})
mongoose.connect('mongodb://localhost:27017/donacolombiabd', (err, res) => {
if (err) throw err;
console.log('Base de datos ONLINE');
});
app.listen(process.env.PORT, () => {
console.log("Escuchando el puerto ", process.env.PORT);
})
CREAR UNA CARPETA Q SE LLAME: routes en la raiz del proyecto
y crear un archivo que se llame usuarios.js dentro de la misma.
pegar rutas de metodos get, delete, post y put dentro del archivo quedando asi:
const express = require('express')
const app = express()
app.get('/usuario', function(req, res) {
res.json('get usuario')
})
//crear nuevos registros
app.post('/usuario', function(req, res) {
let body = req.body;
if (body.nombre === undefined) {
res.status(400).json({
ok: false,
mensaje: 'El nombre es necesario'
});
} else {
res.json({
body: body
})
}
})
//actualizar
app.put('/usuario/:id', function(req, res) {
let id = req.params.id;
res.json({
id
})
})
app.delete('/usuario', function(req, res) {
res.json('delete usuario')
})
module.exports=app;
3.y agregar la linea: app.use(require('./routes/usuario'));
require('./config/config');
const express = require('express')
// Using Node.js `require()`
const mongoose = require('mongoose');
const app = express()
const bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.use(require('./routes/usuario'));
mongoose.connect('mongodb://localhost:27017/donacolombiabd', (err, res) => {
if (err) throw err;
console.log('Base de datos ONLINE');
});
app.listen(process.env.PORT, () => {
console.log("Escuchando el puerto ", process.env.PORT);
})
4. Crear la carpeta models en la carpeta server
y crearemos un archivo llamado usuario.js
https://www.npmjs.com/package/mongoose-unique-validator , creamos el schema.
const mongoose = require('mongoose');
let Schema = mongoose.Schema;
var uniqueValidator = require('mongoose-unique-validator');
var rolesValidos = {
values: ['ADMIN_ROLE', 'USER_ROLE'],
message: '{VALUE} no es un rol permitido'
}
var usuarioSchema = new Schema({
nombre: { type: String, required: [true, 'El nombre es necesario'] },
email: { type: String, unique: true, required: [true, 'El correo es necesario'] },
password: { type: String, required: [true, 'La contraseña es necesaria'] },
img: { type: String, required: false },
role: { type: String, required: true, default: 'USER_ROLE', enum: rolesValidos },
google: { type: Boolean, default: false }
});
usuarioSchema.plugin(uniqueValidator, { message: "{PATH} debe ser único" });
module.exports = mongoose.model('Usuario', usuarioSchema);
En usuario.js de routes se debe importar el Usuario models.
const Usuario = require('../models/usuario');
//crear nuevos registros
app.post('/usuario', function(req, res) {
let body = req.body;
let usuario = new Usuario({
nombre: body.nombre,
email: body.email,
password: body.password,
role: body.role
});
usuario.save((err, usuarioDB) => {
if (err) {
return res.status(400).json({
ok: false,
err
});
}
res.json({
ok: true,
usuario: usuarioDB
})
});
})
Encriptación de la contraseña: https://www.npmjs.com/package/bcrypt
npm i bcrypt --save
Agregar en el usuario.js (routes)
const bcrypt = ;
password: bcrypt.hashSync(body.password, 20),
No hay comentarios:
Publicar un comentario