Mostrando las entradas con la etiqueta NODE. Mostrar todas las entradas
Mostrando las entradas con la etiqueta NODE. Mostrar todas las entradas

sábado, 21 de abril de 2018





Que me disculpe el español pero prefiero escribir en inglés todo el artículo...

Follow this steps to get a hello world project fastly, running on a windows os.

REQUERIMENTS:
- Windows OS.
- Free internet without proxies (if not installation packages must fail).

INSTALLATION STEPS:

1) Get a good windows console program like CMDER full with Github. Rememember to open Cmder as admin.

2) Install NODEJS last version. Verify it after installation by console with: node -v

3) Install NPM version 4 (it must be compatible with expo, so just install 4 for now) by console:
npm install -g npm@4
Verify it after installation with: npm -v

4) Install Expo from Facebook by console with:

npm install exp --global

Remember to check node or nodejs, npm and exp to be included into your PATH variable.

If all ok you should be allowed to type exp on console with this result:













5) Create an EXPO ACCOUNT. You must have internet without proxies or this registration could fail.

6) Install EXPO CLIENT into your mobile device.

7) For write code get a good IDE like ATOM IDE, then install react, react-redux and other atom packages if you like.

8) On your explorer create a workspace folder, then go to your Cmder console and type:

exp init MY-APP











9) Preview your React Native App typing on your console (inside your app folder):

exp start



Then you must open your expo android/ios application on your device, then select scan QR, and just get that code on your pc... then it will start automatically if you have done all steps ok.

miércoles, 5 de julio de 2017

Si te encuentras con errores al instalar paquetes (librerías) npm en tu pc y visualizas mensajes de este tipo: self_signed_cert_in_chain...

Debes ejecutar el siguiente código en tu consola:

npm config set registry="http://registry.npmjs.org/"

Inmediatamente vuelve a ejecutar tu npm install y verás que corre sin problemas...

jueves, 11 de junio de 2015



PUBLICACIÓN DE MODULOS EN NODE

npm login
npm publish



APP DE EJEMPLO NODE EXPRESS - CONNECT - MONGO


Requerimientos:
- Tener instalado nodejs/npm.


PRIMER PASO - EXPRESS:
- Ejecutar comando siguiente: npm i -g express
- Ubicarse en la carpeta destino y ejecutar el comando: express default (este crea un esqueleto de carpetas y archivos predefinidos para una app).
- Ejecutar el siguiente comando: express -c stylus -e exp-styl-ejs (instala el preprocesador de css)


EJEMPLO DE AUTENTICACION EN NODE JS

/** MIDDLEWARE LOGIN
TIP: Iniciar el servidor de autenticador con NODE_ENV='ambiente(desa,prod)' node Autenticador **/


var connect = require('connect');
var app = connect();

function loggerHello(req, res, next){
foo();
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World Pana');
}

function logger(req, res, next){
//res.setHeader('Content-Type', 'text/plain');
//res.end('Este es el logger');
console.log('#logger en acción', req.method, req.url); next(); } function logger(req, res, next){ console.log('Iniciando... ', req.method, req.url); next(); } function authWithDB(user, pass, cb){ if(pass !== 'luis15'){ return cb('Credenciales incorrectas.');
}
cb();
}

function restrict(req, res, next){
var authorization = req.headers.authorization;
if(!authorization){
return next(new Error('No autorizado'));
}

var parts = authorization.split(' ');
var scheme = parts[0];
var auth = new Buffer(parts[1], 'base64').toString().split(':');
var user = auth[0];
var pass = auth[1];

authWithDB(user, pass, function (err) {
if(err){
return next(err);
}
next();
});
}

function admin(req, res, next){

console.log('ACCEDIENDO A: ',req.url);

switch(req.url){

case '/':
res.end('try /users');
break;

case '/users':
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(['Luis', 'JoseLuis', 'Jp']));
break;
}
}

function errorHandler() {

var env = process.env.NODE_ENV || 'desarrollo';
return function (err, req, res, next){
res.statusCode = 500;

switch (env){

case 'desarrollo':
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(err));
break;
default:
res.end('Server error');
}
};
}

app
.use(logger)
.use('/admin', restrict)
.use('/admin', admin)
.use(loggerHello)
.listen(3000);



EJEMPLO DE ORDENAMIENTO DE CALL BACKS EN NODE JS CON LA LIBRERIA ASYNC

var async = require('async');

async.waterfall([

function (cb){
artist.findEvents('Miley', cb);
},
function (concert, cb){
concert.findTickets({price: {$lt: 100}}, cb);
},
function (tickets, cb){
tickets.purchase({cc: 424242424242}, cb);
},
function (transaction, cb) {
email.confirm(customer, transaction, cb);
}
],

//FUNCTION RETORNO
function (null, status){
if(err){
res.send(err);
return false;
}

res.send({
tickets: 'purchased'
});
}
);//FIN WATERFALL

//PATRON PROMISES DE COMMONJS - promises-aplus.github.io/promises-spec/
artist.find('Miley')
.findEvents({city: 'Bogota'})
.findTickets({price: {$lt: 100}}, cb);
.purchase({cc: 424242424242}, cb);

.then (function(transaction) {
customer.transaction = transaction;
return customer.save();
})

.then (function (customer, transaction) {
return email.confirm(customer, transaction);
})

.then function(){
res.send({
tickets: 'purchased'
});
},

function (err) {
console.log('Ha habido un error', err);
}
);

EJEMPLO DE CALL BACKS DESORDENADOS

function startExecution() {
doSomethingAsync(function(error, result) {
doSomethingElseAsync(function(error, result) {
moreAsync(function(error, result) {
evenMoreAsync(function(error, result) {
// ... I think you got it
});
});
});
});
};

miércoles, 10 de junio de 2015



Librerías Clave en Node.js

Las librerías a continuación no son las únicas que existen, y no son camisa de fuerza; tu puedes usar las librerías que quieras y que se ajustan más a tus necesidades en https://npmjs.org/ encontraras muchos paquetes que puedes usar con su respectiva información.

Librerías globales SUPERVISOR https://github.com/isaacs/node-supervisor

$ npm install -g supervisor

Cuando estamos trabajando en Node es necesario tener que compilar el código cada vez que hacemos un cambio.

SUPERVISOR reinicia la aplicación ante cualquier cambio, con la ventaja de que al ocurrir cualquier error en nuestro código, el servidor continúa su ejecución; al producirse un error, “supervisor“ avisará en la consola y mantendrá el servidor siempre despierto.

NODE-INSPECTOR
https://github.com/node-inspector/node-inspector

$ npm install -g node-inspector

Node-Inspector es una interfaz de depuración de Node.js utilizando las herramientas de desarrollo Blink (ex WebKit Web Inspector).

El depurador Blink es una gran interfaz depuradora de javascript, que funciona igual de bien para Node. Nodo Inspector es compatible con casi todas las características de depuración de DevTools.

- Navegar en los archivos de origen
- Establecer puntos de interrupción
- Interrumpir en excepciones
- Continuar a la ubicación
- Desactivar / activar todos los puntos de interrupción
- Inspeccione ámbitos, variables, propiedades de objeto
- Editar las variables y propiedades de objeto


Debugging con node-inspector

1. En la terminal escribimos
$ node —debug ruta/a/tuprogram.js
2. Vamos a http://127.0.0.1:8080/debug?port=5858 en Chrome
Listo debería poder verse la fuente javascript de Node.

FOREVER

https://github.com/nodejitsu/forever

Este la forma de correr demonios en Node, es una herramienta CLI para asegurar que un paquete determinado de node se ejecuta continuamente.

$ npm install -g forever

Nota: Para instalar forever se debe ser el administrador (sudo)

Hay dos formas distintas de utilizarlo siempre: a través de la interfaz de línea de comandos, o exigir el módulo para siempre se ejecute en su propio código.

Nota: Con FOREVER podemos mantener en constante ejecución a node-inspector, y si queremos cambiarlo de puerto.

Librerías locales UNDERSCORE
http://underscorejs.org/

$ npm install underscore --save

Underscore.js es una biblioteca de utilidades para JavaScript que proporciona apoyo a los sospechosos habituales funcionales (each, mapa, reducir, filtros ...) sin extender cualquier objeto de JavaScript.

SWIG
http://paularmstrong.github.io/swig/

$ npm install swig --save

Es un motor de plantillas basado en Node y Javascript; al igual que en Django en los templates se trabaja con Tags {% %} y Filtros {{ }} para construir las plantillas.
Ej.
{% block title %}Backend pro{% endblock %} {% block head %} {% endblock %} {% block content %}{% endblock %} Luego de construir la plantilla se renderiza en el server.

1. Requiere el paquete swig en el servidor.
swig = require('swig'); 2. Construir la vista del motor, para renderizar tu plantilla
server.engine('html', swig.renderFile ); 3. Renderizar los templates
server.set('views', './app/views');

Nota: Se esta usando Swig con Express.

CONNECT-REDIS
https://github.com/visionmedia/connect-redis

$ npm install connect-redis –save
Es un paquete de Node que sirve para almacenar sesiones de Redis soportado por node_redis y es increíblemente rápido.

lunes, 8 de junio de 2015



INTRODUCCIÓN A NODEJS

Node debe ser utilizado para aplicaciones en tiempo real básicamente.

Requerimientos:

- NodeJs Descargar - Sublime Text (opcional) Descargar

INSTALACIÓN DE NODE JS

Instalación de Nodejs en Windows, Mac y Linux

Windows
Paso 1: Ir a http://nodejs.org
Paso 2: Descargar el archivo
Paso 3: Instalar NodeJs
Paso 4: Buscar en sus programas instalados: "Node.js Command Prompt"
Paso 5: Teclear node -v para comprobar que se instalo

Deberan tener v0.8.x

Mac

Paso 1: Ir a http://nodejs.org
Paso 2: Descargar el archivo
Paso 3: Instalar NodeJs
Paso 4: Abrir el programa "Terminal"
Paso 5: Teclear node -v para comprobar que se instalo

Deberan tener v0.8.x

Ubuntu

Paso 1: Abrir la terminal
Paso 2: Instalar dependencias así:
> sudo apt-get install build-essential git-core libssl-dev libssl0.9.8Paso 3: Descargar Node
> git clone git://github.com/joyent/nodeDespués entra al folder que acabas de descargar con:
> cd node
Paso 4: Pasar a NodeJs 0.8.4
> git checkout v0.8.4 Paso 5: Compilar e instalar NodeJs
> ./configure
> make
> sudo make installPaso 6: Teclear node -v para comprobar que se instalo

Deberan tener v0.8.x

Node puede estar presente en cualquier carpeta de tu ordenador, como contenedor de apps, solo necesitas un archivo .js y un package.json con la información de la app, ejemplo:

{ "name": "NombreDeTuApp", "version": "0.0.1", "dependencies": { "express" : "3.0.3", "jade" : "0.27.7", "consolidate" : "0.5.0", "socket.io" : "0.9.11" } }

Posteriormente, ejecutar comando: npm install y node instalará las dependencias(librerías) automáticamente...


Imagen 1: Uso de depedendencia xpress, como servidor.

PRIMER ARCHIVO - INICIO DE CONTENEDOR DE APLICACION NODE

EJECUTAR COMANDO DE CONSOLA: node + nombre de archivo

/**EJEMPLO 1 FIRST.JS **/

var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'image/png'}); fs.createReadStream('../assets/nodejs.png').pipe(res); }).listen(3000); console.log('Server running at http://127.0.0.1:3000');

--------------------------------------------------------------------------------

/** EJEMPLO MODULO PPAL **/

var luis = require('./myModule'); var info2 = require('./info2'); module.exports = { luis : luis, john: { name: 'John Liberal', songs: ['Jeremy', 'Black Hole Sun'], events: ['Beijing', 'Caracas'] }, pam: pam };
/** EJEMPLO INFO2 QUE CONSUME MODULO PPAL **/
var edad = 20; var estado = 'soltera'; function sing(){ console.log('lalalalalal'); } function cry(){ console.log('boo boo boo'); } function getArrested(){ console.log('arrestada'); } module.exports = { sing: sing, cry: cry, getArrested: getArrested, estado: estado };

-----------------------------------------------------------------

/** EJEMPLO LECTURA DE ARCHIVOS **/

/** SECOND.JS **/

var fs = require('fs'); var stream = fs.createReadStream('../assets/events.json'); //CODIFICANDO LOS CARACTERES DEL ARCHIVO A LEGIBLES stream.setEnconding('utf8'); //INICIANDO STREAM stream.on('data', function (chunk) { console.log(chunk); }); //FINALIZANDO STREAM stream.on('end', function () { console.log('finished'); });

-------------------------------------------------------------------

/** EVENTS.JSON **/

{"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }}
Subscribe to RSS Feed Sígueme en twitter!