Curso Profesional de Node.js y JavaScript 2016

Curso Profesional de Node.js y JavaScript 2016

Instruido por:
Avanzado
14 horas de contenido
Curso Profesional de Node.js y JavaScript 2016

Curso Profesional de Node.js y JavaScript 2016

Progreso del curso:0/61contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/61contenidos(0%)

Crea el backend de tu aplicación

Material Thumbnail

Introducción y arquitectura de nuestro proyecto

14:03 min

Material Thumbnail

Cómo crear una cuenta de Amazon Web Services y configurar S3 ( Almacenamiento de Archivos )

11:57 min

Material Thumbnail

Usando el SDK de Amazon Web Services

22:35 min

Material Thumbnail

Cómo agregar Standard ( Linter ) a nuestro código en JavaScript

12:27 min

Material Thumbnail

Testing en JavaScript usando AVA

12:52 min

Material Thumbnail

Prueba unitaria para validar un array

11:19 min

Material Thumbnail

Uso de expresiones regulares para nuestras pruebas unitarias

06:34 min

Módulo de base de datos con RethinkDB

Material Thumbnail

Introduccion a RethinkDB

06:52 min

Material Thumbnail

Accediendo a nuestra base de datos Rethinkdb desde Node.js

23:35 min

Material Thumbnail

Creación de test para RethinkDB y almacenamiento de ruta de imágenes

16:30 min

Material Thumbnail

Almacenamiento de rutas de imágenes en RethinkDB

04:40 min

Material Thumbnail

Completando el test para nuestro objeto imagen

06:03 min

Material Thumbnail

Creación de un fixture para test de petición de imágenes

09:51 min

Material Thumbnail

Petición de de imagen desde base de datos

03:08 min

Material Thumbnail

Consulta de todas las imágenes de nuestra base de datos

15:15 min

Material Thumbnail

Buenas prácticas de creación de usuarios en Backend (Encriptación con Hash)

16:13 min

Material Thumbnail

Petición de un usuario desde base de datos

09:04 min

Material Thumbnail

Autenticación de usuario mediante password

06:10 min

Material Thumbnail

Control de errores mediante excepciones (Try, Catch, Throws )

11:26 min

Material Thumbnail

Consulta de imágenes en relación a nombre de usuario

14:32 min

Material Thumbnail

Consulta de imágenes en relación a tag

07:32 min

Material Thumbnail

Preparando nuestro módulo para microservicios

04:16 min

Módulo del API de nuestra aplicación

Material Thumbnail

Introducción a los Microservicios

21:45 min

Material Thumbnail

Creación de rutas para microservicios

20:50 min

Material Thumbnail

Creación de nuestro endpoint GET /picture

20:47 min

Material Thumbnail

Creción de nuestro endpoint POST /picture

11:14 min

Material Thumbnail

Creción de nuestro endpoint POST /picture/:id/like

09:25 min

Material Thumbnail

Creción de nuestro endpoint GET /picture/list

06:57 min

Material Thumbnail

Creción de nuestro endpoint GET /picture/tag

07:32 min

Material Thumbnail

Creación de nuestro endpoint POST /user

16:50 min

Material Thumbnail

Creación de nuestro endpoint GET /user-name

07:16 min

Material Thumbnail

Creación de Tokens para nuestro API usando JSON Web Tokens

19:12 min

Material Thumbnail

Limitando nuestros request esperando recibir un Token

16:37 min

Material Thumbnail

Test de autenticación de usuario

12:42 min

Módulo de Client de nuestra aplicación

Material Thumbnail

Creación de nuestro cliente

16:22 min

Material Thumbnail

Implementando el perfil de usuario

17:29 min

Material Thumbnail

Carga de imágenes desde nuestro cliente

22:44 min

Material Thumbnail

Cómo implementar autenticación de usuarios con Passport

03:15 min

Material Thumbnail

Configurando un middleware en express

11:49 min

Material Thumbnail

Estrategia de autenticación local (password / contraseña )

14:28 min

Material Thumbnail

Consulta, altas de usuarios y manejos de errores en autenticación

21:23 min

Material Thumbnail

Autenticación con Facebook

21:54 min

Material Thumbnail

Creación de un token del API a partir de autenticación por Facebook

19:13 min

Material Thumbnail

Manejo de sesiones de usuarios

19:16 min

Integración con nuestro Frontend

Material Thumbnail

Consulta y alta de imagenes

14:53 min

Material Thumbnail

Implementación de perfil de usuario

07:47 min

RealTime con Socket.io

Material Thumbnail

Implementación de de Socket.io junto con RethinkDB

19:05 min

Material Thumbnail

Escuchar un evento y mostrar los cambios en frontend

09:54 min

Lleva tu proyecto a producción

Material Thumbnail

Introduccion a Vagrant

06:42 min

Material Thumbnail

Creando nuestra primer maquina virtual con Vagrant

27:02 min

Material Thumbnail

Introduccion a Ansible

06:12 min

Material Thumbnail

Creando nuestro primer rol de ansible

18:37 min

Material Thumbnail

Creando nuestro primer playbook para despliegue

18:42 min

Material Thumbnail

Crear tareas para Platzigram dentro de Ansible

32:01 min

Material Thumbnail

Crear tareas para el resto de los proyectos

16:24 min

Material Thumbnail

Creación de servicios de upstart

23:19 min

Material Thumbnail

Introducción a NGINX

02:46 min

Material Thumbnail

Creación de rutas para nuestros microservicios

21:51 min

Material Thumbnail

Llevando nuestro proyecto a Digital Ocean

10:36 min

Material Thumbnail

Dominio y proyecto en producción

15:51 min

Terminaste este curso, tenemos buenas noticias, entra y entérate.

01:10 min

nuevosmás votadossin responder
Keneth Sandoval
Keneth Sandoval
Estudiante

Hola, ¿alguien sabe si hay un curso mas actualizado de node? o donde hace una api tipo telegram que varios amigos me han recomendado ese curso para iniciar pero no logro encontrarlo, si saben donde esta o de quien es se los agradeceria igual un curso mas actualizado y profesional de nodejs

1
Phantom45
Phantom45
Estudiante

estoy teniendo problemas a la hora de ejecutar

micro -p5000 pictures.js

Me sale el siguiente error, agradeceria cualquier ayuda

[email protected]:~/platzigram$ micro -p 5000 pictures.js
/home/mortem45/platzigram/node_modules/@babel/helper-plugin-utils/lib/index.js:72
  throw Object.assign(err, {
  ^

Error: Requires Babel "^7.0.0-0", but was loaded with"6.26.3". If you are sure you have a compatible versionof @babel/core, itis likely that something in your build process is loading the wrong version. Inspect the stack trace of this errorto look forthefirst entry that doesn't mention "@babel/core"or"babel-core"to see what is calling Babel.
    at throwVersionError (/home/mortem45/platzigram/node_modules/@babel/helper-plugin-utils/lib/index.js:65:11)
    at Object.assertVersion (/home/mortem45/platzigram/node_modules/@babel/helper-plugin-utils/lib/index.js:13:11)
    at _default (/home/mortem45/platzigram/node_modules/@babel/plugin-transform-runtime/lib/index.js:82:7)
    at /home/mortem45/platzigram/node_modules/@babel/helper-plugin-utils/lib/index.js:19:12at Function.memoisePluginContainer (/usr/lib/node_modules/micro/node_modules/babel-core/lib/transformation/file/options/option-manager.js:113:13)
    at Function.normalisePlugin (/usr/lib/node_modules/micro/node_modules/babel-core/lib/transformation/file/options/option-manager.js:146:32)
    at /usr/lib/node_modules/micro/node_modules/babel-core/lib/transformation/file/options/option-manager.js:184:30at Array.map (<anonymous>)
    at Function.normalisePlugins (/usr/lib/node_modules/micro/node_modules/babel-core/lib/transformation/file/options/option-manager.js:158:20)
    at OptionManager.mergeOptions (/usr/lib/node_modules/micro/node_modules/babel-core/lib/transformation/file/options/option-manager.js:234:36)
    at OptionManager.init (/usr/lib/node_modules/micro/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at compile (/usr/lib/node_modules/micro/node_modules/babel-register/lib/node.js:83:45)
    at loader (/usr/lib/node_modules/micro/node_modules/babel-register/lib/node.js:128:14)
    at Object.require.extensions.(anonymous function) [as .js] (/usr/lib/node_modules/micro/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (internal/modules/cjs/loader.js:566:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
    at Function.Module._load (internal/modules/cjs/loader.js:498:3)
    at Module.require (internal/modules/cjs/loader.js:598:17)
    at require (internal/modules/cjs/helpers.js:11:18)
    at Object.<anonymous> (/usr/lib/node_modules/micro/build/micro:61:11)
    at Module._compile (internal/modules/cjs/loader.js:654:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
    at Module.load (internal/modules/cjs/loader.js:566:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
    at Function.Module._load (internal/modules/cjs/loader.js:498:3)
1
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Bueno, pense que habia solucionado,.
Ahora no suben ni a la base de datos, a S3 si que suben.

¿ Y ahora que sera, antes por lo menos subian…?

0: Error
​​
columnNumber: 19
​​
fileName: "http://localhost:5050/app.js"
​​
lineNumber: 14888
​​
message: "Internal Server Error"
​​
original: null
​​
response: Object { text: "401 - {\"error\":\"invalid token\"}", statusText: "Internal Server Error", statusCode: 500, … }
​​
stack: "Request/<@http://localhost:5050/app.js:14888:19\n[30]</[email protected]://localhost:5050/app.js:2488:7\n[384]</Request.prototype._end/[email protected]://localhost:5050/app.js:15168:5\n"
​​
status: 500
​​
<prototype>: Object { … }
​
1: {…}
​​
accepted: false
​​
badRequest: false
​​
body: null
​​
charset: "utf-8"
​​
clientError: false
​​
created: false
​​
error: Error
​​​
columnNumber: 13
​​​
fileName: "http://localhost:5050/app.js"
​​​
lineNumber: 14829
​​​
message: "cannot POST /api/pictures (500)"
​​​
method: "POST"
​​​
stack: "[384]</[email protected]://localhost:5050/app.js:14829:13\n[387]</[email protected]://localhost:5050/app.js:16221:11\[email protected]://localhost:5050/app.js:14773:3\nRequest/<@http://localhost:5050/app.js:14863:13\n[30]</[email protected]://localhost:5050/app.js:2488:7\n[384]</Request.prototype._end/[email protected]://localhost:5050/app.js:15168:5\n"
​​​
status: 500
​​​
url: "/api/pictures"```
1
luis.venegas
luis.venegas
Estudiante

como solucionar para produccion la vinculacion con npm link, tedria que publicar el modulo db en npm?

1
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Hola, a mi tambien me da el mismo error que a los compañeros @ivnxyz y @manuelsm y en las dos primeras veces que empece el proyecto lo solucione cambiando :
let newImage = { src: image.src, description: image.description }
por:
let newImage = { src: image.url, description: image.description }

Se que se trata del test, pero si el test da error es por que la implementación no estará bien, lo cual luego podrá dar problemas…
¿ De donde viene src para que de error y como se puede corregir siguiendo el código de Julian?
¿ Hay otra manera de solucionar este error ?
Gracias.


error: Error {
status: 404,
statusCode: 404,
message: Nock: No match for request {␊ "method": "POST",␊ "url": "http://platzigram.test/picture/",␊ "headers": {␊ "authorization": "Bearer xxx-xxx-xxx",␊ "host": "platzigram.test",␊ "accept": "application/json",␊ "content-type": "application/json",␊ "content-length": 56␊ },␊ "body": "{\\"description\\":\\"an #awesome picture with #tags #platzi\\"}"␊ },
}

Mi proyecto esta en : https://github.com/miguelitolaparra/miProyectoPlatzigram
Gracias.

2
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Hola, estoy estancado e esta parte del proyecto, como ya abran visto en otras consultas.
Bien, creo que segui el proyecto igualmente que el profesor.
Dando vueltas al código intentando solucionar el tema de subir imagenes, que aun no conseguí, me di cuenta que ami no se se me marca el el usuario en la barra de navegación.
Ar hacer login, solo marca `localhost:5050 sin la extensión del usuario como a Julián.
Si alguien me da alguna idea de a que clase me debo retrasar para corregir eso.
Quizá de ahì vengan mis problemas para subir las imagenes.
Y lo estoy intentado resolver, no quiero que nadie me lo solucione, solo pido ayuda para algo que no se hacer …
…estoy estudiando…
Gracias.
https://github.com/miguelitolaparra/miProyectoPlatzigram

1
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Buena. A vewr si pueden ayudarme con el error que me muestra la consola del navegador al intententar subir las imagenes.
He revisado el codigo de API y no tengo nada cambiado,.
Quiza este buscando en el lugar equivocado, aun no he aprendido a interpretar los errores de consola.
Sera porque nadie me a enseñado.
Gracias si pueden ayudarme

Arguments
​
0: Error
​​
columnNumber: 19
​​
fileName: "http://michaelgram.test:5050/app.js"
​​
lineNumber: 14888
​​
message: "Internal Server Error"
​​
original: null
​​
response: Object { text: "401 - {\"error\":\"invalid token\"}", statusText: "Internal Server Error", statusCode: 500, … }
​​
stack: "Request/<@http://michaelgram.test:5050/app.js:14888:19\n[30]</[email protected]://michaelgram.test:5050/app.js:2488:7\n[384]</Request.prototype._end/[email protected]://michaelgram.test:5050/app.js:15168:5\n"
​​
status: 500
​​
<prototype>: Object { … }
​
1: {…}
​​
accepted: false
​​
badRequest: false
​​
body: null
​​
charset: "utf-8"
​​
clientError: false
​​
created: false
​​
error: Error: "cannot POST /api/pictures (500)"toErrorhttp://michaelgram.test:5050/app.js:14829:13_setStatusPropertieshttp://michaelgram.test:5050/app.js:16221:11Responsehttp://michaelgram.test:5050/app.js:14773:3Requesthttp://michaelgram.test:5050/app.js:14863:13emithttp://michaelgram.test:5050/app.js:2488:7onreadystatechangehttp://michaelgram.test:5050/app.js:15168:5
​​
forbidden: false
​​
header: Object { connection: "keep-alive", "content-length": "31", "content-type": "text/html; charset=utf-8", … }
​​
headers: Object { connection: "keep-alive", "content-length": "31", "content-type": "text/html; charset=utf-8", … }
​​
info: false
​​
links: Object {  }
​​
noContent: false
​​
notAcceptable: false
​​
notFound: false
​​
ok: false
​​
redirect: false
​​
req: {…}
​​​
_callback: functiononsubmit()
​​​
_callbacks: Object{ "$end": (1) […] }
​​​
_data: FormData {  }
​​​
_endCalled: true
​​​
_header: Object {  }
​​​
_query: Array []
​​​
header: Object {  }
​​​
method: "POST"
​​​
url: "/api/pictures"
​​​
xhr: XMLHttpRequest { readyState: 4, timeout: 0, withCredentials: false, … }
​​​
<prototype>: Object { addEventListener: addEventListener()
, on: addEventListener(), once: once()
, … }
​​
serverError: true
​​
status: 500
​​
statusCode: 500
​​
statusText: "Internal Server Error"
​​
statusType: 5
​​
text: "401 - {\"error\":\"invalid token\"}"
​​
type: "text/html"
​​
unauthorized: false
​​
unprocessableEntity: false
​​
xhr: XMLHttpRequest { readyState: 4, timeout: 0, withCredentials: false, … }
​​
<prototype>: Object { get: get()
, _setHeaderProperties: _setHeaderProperties(), _setStatusProperties: _setStatusProperties()
, … }
​
callee: Getter & Setter
​
length: 2Symbol(Symbol.iterator): functionvalues()
​
<prototype>: Object{ … }
template.js:151:8
1
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Para crear usuaria se hace asi: r.db("platzigram").table('users').indexCreate('username')

Pero como hago desde el data explorer para eliminar los usuarios creados, probe : r.db("platzigram").table('users').indexDrop('miguelito')

Pero no me funciona.
¿ Como se borra un usuario en concreto ?
Gracias.

1
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Hola, gracias al aportes de @rafaelgp87 puede hacer login.
Pero tengo una pregunta, ¿ porque he tenido que crear el usuario manualmente cuando el resto de datos se crearon automáticamente desde la base de datos…?
¿ Que parte de la aplicación debo revisar para corregir este error ??
Porque revise la creación de tablas y en un principio se ven bien ?
Esperare y si es necesario muestrear el código, pero si pueden decirme que debo mirar con mas detalle… si no les enseñaré mi codigo a ver que tengo mal.
Gracias.

1
Miguel Angel Espeso Alvarez
Miguel Angel Espeso Alvarez
Estudiante

Buenas, tengo una duda, ¿ porque el test test/picture-test.js me da error si no le añado await al throws ?
No se si me perdi algo en el código, pero Julian no tiene await
Esto puede acarrear consecuenciencias en el futuro…??

Gracias.

test('no token POST /', async t => {
  let image = fixtures.getImage()
  leturl = t.context.url

  let options = {
    method: 'POST',
    uri: url,
    json: true,
    body: {
      description: image.description,
      src: image.src,
      userId: image.userId
    },
    resolveWithFullResponse: true
  }
  // Asi no da error si quito await no pasa el testawait t.throws(request(options), /invalid token/)
})
1