Академический Документы
Профессиональный Документы
Культура Документы
3. Instalacin de MongoDB
Instalar en el disco C una carpeta Data y adentro una db
4. Instalar el proyecto
Desde consola:
o www (cd /cygdrive/c/wamp/www)
o mkdir (nombre proyecto)
o cd (nombre proyecto)
o npm init -> Llenar datos del proyecto
o Esto crea un json que tiene el package
5. Generar dependencias
Se llama al npm install y se pone al final save, para que se guarde y cuando exportemos el
proyecto a otro lado con solo poner npm install se gurden todas las dependencias
o Primero instalamos express (framework para API REST sobre node JS)
npm install express --save
o Instalamos
bcrypt-nodejs (para encriptar contraseas)
body-parser (lo que lleva como post lo pasamos a objeto de jsnon)
connect-multiparty (recibir archivos por la variable FILE y poder guardarlos
en la API)
jwt-simple (trabajar con tokens)
moment
mongoose (trabajar con mongo)
mongoose-pagination
nodemon save-dev (solo en desarrollo y no en produccin)(para que se
cargue el servidor de nuevo cuando hacemos cambios y no tener que
hacerlo manual)
6. Base de datos
Crear base de datos
o Se tiene que tener inicializado mongod.exe (demonio) tiene que estar corriendo
para que funcione
o Para crearla se usa el cmando use
o Se pasa la base de datos a una variable db
o Db.<tabla>.save({aca se puede guardar un JSON});
o Db.<tabla>.find(); ->muestra los registros
o Show dbs -> muestra las bases de datos
'use strict'
//cargar rutas
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json()); //convierte a json las peticiones http
module.exports = app; //utilizar express dentro de otros ficheros que incluyan a app
En el index.js
var app = require('./app');
var port = process.env.PORT || 3977;
app.listen(port, function(){
console.log("Servidor corriendo en http://localhost:"+port);
});
9. Crear el Modelo
Se crea una carpeta en la raiz: models
Se agrega el <modelo/tabla>.js
'use strict'
module.exports = {
ping
};
Creamos la carpeta routes
Creamos el archive <table>.js
'use strict'
api.get('/ping', <table>Controller.ping);
module.exports = api;
//console.log(params);
user.name = params.name;
user.surname = params.surname;
user.image = 'null';
user.email = params.email;
user.role = 'ROLE_USER';
if (params.password){
//Encriptar pass
bcrypt.hash(params.password, null, null, function(err, hash){
user.password = hash;
if (user.name != null && user.surname!=null && user.email
!= null){
//Guardar en base de datos
user.save((err, userStored) => {
if(err){
12. Login
Crear otra funcin en el controlador loginUser
Recordar crear la ruta en route/user
Exportar el modulo
function loginUser(req, res){
try{
var payload = jwt.decode(token, clave);
if(payload.exp<=moment().unix()){
return res.status(401).send({message: 'El token ha
expirado'});
}else{
req.user = payload;
next();
}
}catch(ex){
console.log(ex);
return res.status(404).send({message: 'Token no valido'});
}
};
15.