miércoles, 14 de noviembre de 2018

NODE JS SERVER BACKEND

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: 


// Using Node.js `require()`
const mongoose = require('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.connect('mongodb://localhost/my_database');




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'));

en el archivo server.js

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 = require('bcrypt');

password: bcrypt.hashSync(body.password, 20),









No hay comentarios: