{"id":690,"date":"2019-03-04T12:49:27","date_gmt":"2019-03-04T19:49:27","guid":{"rendered":"https:\/\/rosolutions.com.mx\/blog\/?p=690"},"modified":"2019-04-16T14:18:55","modified_gmt":"2019-04-16T21:18:55","slug":"rutas-de-modulos-locales-con-alias-en-node-js","status":"publish","type":"post","link":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/","title":{"rendered":"Rutas de m\u00f3dulos locales con alias en Node.js"},"content":{"rendered":"<h2>Introducci\u00f3n<\/h2>\n<p>Al estar realizando tu proyecto en Node.js que se divide en muchos m\u00f3dulos como controladores, modelos, utilidades, middlewares, etc., te encontrar\u00e1s con un peque\u00f1o problema: Rutas Relativas. Estas rutas se pueden componer por demasiados puntos, saltos de carpetas y a la larga puede ocasionar problemas, como apuntar a un m\u00f3dulo y a la hora de correr el proyecto marque error porque est\u00e1 mal la ruta, sin mencionar que en nuestro c\u00f3digo se empiece a ver feo como el siguiente c\u00f3digo:<\/p>\n<p><code>import modulo from '..\/..\/..\/..\/MiModulo';<\/code><\/p>\n<h2>Enlaces simb\u00f3licos<\/h2>\n<p>Una soluci\u00f3n pr\u00e1ctica y sencilla es crear Enlaces Simb\u00f3licos (Symlinks).<\/p>\n<blockquote><p>Un <a href=\"https:\/\/es.wikipedia.org\/wiki\/Enlace_simb%C3%B3lico\">enlace simb\u00f3lico<\/a>, en sistemas Unix o GNU\/linux, indica un acceso a un directorio o fichero que se encuentra en un lugar distinto dentro de la estructura de directorios.<\/p><\/blockquote>\n<p>B\u00e1sicamente se pueden crear enlaces simb\u00f3licos en la carpeta \u201c<code>node_modules<\/code>\u201d que redirijan a la carpeta de nuestros m\u00f3dulos y que la aplicaci\u00f3n de Node.js lo detecte r\u00e1pidamente, as\u00ed como los diferentes IDE\u2019s como Visual Code. En sistemas Unix o GNU\/Linux tenemos el comando:<br \/>\n<code>ln -s archivo_fuente ruta_destino<\/code>\u201d<br \/>\nPara Windows tenemos el comando:<br \/>\n<code>mklink \/d directorio_fuente ruta_destino<\/code><br \/>\nEn este por defecto, crea enlaces simb\u00f3licos a archivos, al menos que se especifique con el par\u00e1metro \u201c\/d\u201d.<\/p>\n<p>Sin embargo, puede resultar molesto estar creando los enlaces manualmente, as\u00ed que ocuparemos una herramienta que permita hacer esto con una simple configuraci\u00f3n. Aqu\u00ed es donde entra un paquete para npm.<\/p>\n<h2>M\u00f3dulo link-module-alias<\/h2>\n<p>El m\u00f3dulo\u00a0<a href=\"https:\/\/www.npmjs.com\/package\/link-module-alias\">link-module-alias<\/a> permite crear los enlaces simb\u00f3licos despu\u00e9s de una instalaci\u00f3n de los m\u00f3dulos de npm. Para ello instalamos el paquete:<br \/>\n<code>npm i --save-dev link-module-alias<\/code><br \/>\nDespu\u00e9s, dentro de nuestro <code>package.json<\/code> agregamos lo siguiente:<\/p>\n<p>https:\/\/gist.github.com\/Asner\/a54b8b0ea5d5e3c192ff2a0d8fe89a13<\/p>\n<p>Dentro de <code>_moduleAliases<\/code> ir\u00e1n las rutas, donde la llave es el \u201cpaquete\u201d y la ruta, es la direcci\u00f3n donde crear\u00e1 un enlace simb\u00f3lico hacia <code>node_modules<\/code>.<br \/>\nComo el siguiente ejemplo:<\/p>\n<p>https:\/\/gist.github.com\/Asner\/29e82a88bfb35d0b5275385f56fe0c31<\/p>\n<p>Despu\u00e9s de esto, se pueden ejecutar dos comandos:<\/p>\n<ol>\n<li>\u00a0<code>npm install<\/code>: Instala las dependencias del proyecto y este va ejecutar el script de post-instalaci\u00f3n.<\/li>\n<li><code>npm run postinstall<\/code>: Ejecuta el script post-instalaci\u00f3n sin la necesidad de instalar las dependencias del proyecto.<\/li>\n<\/ol>\n<p>El \u00fanico problema es que, en sistemas con Windows, se necesita permisos de administrador para correr el script de enlaces.<br \/>\nFinalmente, en tu c\u00f3digo podr\u00e1s poner:<br \/>\n<code>const { users } = require('@models');<\/code><\/p>\n<p>y no lo siguiente:<br \/>\n<code>const { users } = require('..\/..\/..\/models');<\/code><\/p>\n<p>Finalmente, podremos observar que se ha reducido la cantidad de rutas relativas, en mi caso personal, me ha ayudado m\u00e1s para mantener un c\u00f3digo m\u00e1s legible. En proyectos de React tambi\u00e9n se puede usar, siguiendo los mismos pasos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Al estar realizando tu proyecto en Node.js que se divide en muchos m\u00f3dulos como controladores, modelos, utilidades, middlewares, etc., te encontrar\u00e1s con un peque\u00f1o problema: Rutas Relativas. Estas rutas se pueden componer por demasiados puntos, saltos de carpetas y a la larga puede ocasionar problemas, como apuntar a un m\u00f3dulo y a la hora [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":699,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,7,5],"tags":[],"class_list":["post-690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo","category-desarrollo-de-software-a-la-medida","category-tips"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rutas de m\u00f3dulos locales con alias en Node.js &#8212; Desarrollo de software<\/title>\n<meta name=\"description\" content=\"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rutas de m\u00f3dulos locales con alias en Node.js &#8212; Desarrollo de software\" \/>\n<meta property=\"og:description\" content=\"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Desarrollo de software\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/rosolutionsmx\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-04T19:49:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-16T21:18:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Eduardo Gaytan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ROSolutionsmx\" \/>\n<meta name=\"twitter:site\" content=\"@ROSolutionsmx\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Eduardo Gaytan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\"},\"author\":{\"name\":\"Jose Eduardo Gaytan\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/9ece7e4e2b198da933405db9a7781e82\"},\"headline\":\"Rutas de m\u00f3dulos locales con alias en Node.js\",\"datePublished\":\"2019-03-04T19:49:27+00:00\",\"dateModified\":\"2019-04-16T21:18:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\"},\"wordCount\":462,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png\",\"articleSection\":[\"Desarrollo\",\"Programaci\u00f3n\",\"Tips\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\",\"name\":\"Rutas de m\u00f3dulos locales con alias en Node.js &#8212; Desarrollo de software\",\"isPartOf\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png\",\"datePublished\":\"2019-03-04T19:49:27+00:00\",\"dateModified\":\"2019-04-16T21:18:55+00:00\",\"description\":\"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.\",\"breadcrumb\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png\",\"contentUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png\",\"width\":740,\"height\":500,\"caption\":\"node\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/rosolutions.com.mx\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rutas de m\u00f3dulos locales con alias en Node.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#website\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/\",\"name\":\"Desarrollo de software\",\"description\":\"Blog de RO Solutions\",\"publisher\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rosolutions.com.mx\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#organization\",\"name\":\"RO Solutions\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png\",\"contentUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png\",\"width\":350,\"height\":346,\"caption\":\"RO Solutions\"},\"image\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/rosolutionsmx\/\",\"https:\/\/x.com\/ROSolutionsmx\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/9ece7e4e2b198da933405db9a7781e82\",\"name\":\"Jose Eduardo Gaytan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/2d415dff0c80acc942811a04bf662b573bdc19edb824b80bdd1facbf53f4572e?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2d415dff0c80acc942811a04bf662b573bdc19edb824b80bdd1facbf53f4572e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2d415dff0c80acc942811a04bf662b573bdc19edb824b80bdd1facbf53f4572e?s=96&d=mm&r=g\",\"caption\":\"Jose Eduardo Gaytan\"},\"url\":\"https:\/\/rosolutions.com.mx\/blog\/author\/gaytan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rutas de m\u00f3dulos locales con alias en Node.js &#8212; Desarrollo de software","description":"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/","og_locale":"es_MX","og_type":"article","og_title":"Rutas de m\u00f3dulos locales con alias en Node.js &#8212; Desarrollo de software","og_description":"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.","og_url":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/","og_site_name":"Desarrollo de software","article_publisher":"https:\/\/www.facebook.com\/rosolutionsmx\/","article_published_time":"2019-03-04T19:49:27+00:00","article_modified_time":"2019-04-16T21:18:55+00:00","og_image":[{"width":740,"height":500,"url":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png","type":"image\/png"}],"author":"Jose Eduardo Gaytan","twitter_card":"summary_large_image","twitter_creator":"@ROSolutionsmx","twitter_site":"@ROSolutionsmx","twitter_misc":{"Escrito por":"Jose Eduardo Gaytan","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#article","isPartOf":{"@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/"},"author":{"name":"Jose Eduardo Gaytan","@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/9ece7e4e2b198da933405db9a7781e82"},"headline":"Rutas de m\u00f3dulos locales con alias en Node.js","datePublished":"2019-03-04T19:49:27+00:00","dateModified":"2019-04-16T21:18:55+00:00","mainEntityOfPage":{"@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/"},"wordCount":462,"commentCount":0,"publisher":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#organization"},"image":{"@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png","articleSection":["Desarrollo","Programaci\u00f3n","Tips"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/","url":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/","name":"Rutas de m\u00f3dulos locales con alias en Node.js &#8212; Desarrollo de software","isPartOf":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage"},"image":{"@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png","datePublished":"2019-03-04T19:49:27+00:00","dateModified":"2019-04-16T21:18:55+00:00","description":"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.","breadcrumb":{"@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#primaryimage","url":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png","contentUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/03\/weba3-1.png","width":740,"height":500,"caption":"node"},{"@type":"BreadcrumbList","@id":"https:\/\/rosolutions.com.mx\/blog\/rutas-de-modulos-locales-con-alias-en-node-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/rosolutions.com.mx\/blog\/"},{"@type":"ListItem","position":2,"name":"Rutas de m\u00f3dulos locales con alias en Node.js"}]},{"@type":"WebSite","@id":"https:\/\/rosolutions.com.mx\/blog\/#website","url":"https:\/\/rosolutions.com.mx\/blog\/","name":"Desarrollo de software","description":"Blog de RO Solutions","publisher":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rosolutions.com.mx\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/rosolutions.com.mx\/blog\/#organization","name":"RO Solutions","url":"https:\/\/rosolutions.com.mx\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png","contentUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png","width":350,"height":346,"caption":"RO Solutions"},"image":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/rosolutionsmx\/","https:\/\/x.com\/ROSolutionsmx"]},{"@type":"Person","@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/9ece7e4e2b198da933405db9a7781e82","name":"Jose Eduardo Gaytan","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/2d415dff0c80acc942811a04bf662b573bdc19edb824b80bdd1facbf53f4572e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2d415dff0c80acc942811a04bf662b573bdc19edb824b80bdd1facbf53f4572e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2d415dff0c80acc942811a04bf662b573bdc19edb824b80bdd1facbf53f4572e?s=96&d=mm&r=g","caption":"Jose Eduardo Gaytan"},"url":"https:\/\/rosolutions.com.mx\/blog\/author\/gaytan\/"}]}},"_links":{"self":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts\/690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=690"}],"version-history":[{"count":3,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions"}],"predecessor-version":[{"id":698,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts\/690\/revisions\/698"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/media\/699"}],"wp:attachment":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}