para usuarios windows usar:
"start": "SET NODE_ENV=production & node index",
Introducción
Introducción al curso y prerequisitos del curso
¿Qué es GraphQL?
Conceptos básicos
Schema y types
Queries y Resolvers
Sirviendo el API en la web
Custom Types
Argumentos
Configuración de base de datos
Integrando una base de datos
Mutations e Inputs
Repaso - Creando el tipo Estudiante
Nested Types
Resolver de tipos
Errores
Conceptos avanzados
Alias y fragments
Variables
Enums
Interfaces - Tipo Monitor
Directivas
Unions
Consumiendo el API
Preparando API para producción
HTTP requests
Clientes de GraphQL
Consumiendo el API desde un frontend simple
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Para que nuestra API sea accesible desde cualquier lugar debemos añadir el middleware cors a express, primero debemos instalarlo con el siguiente comando:
npm i cors
Aportes 18
Preguntas 2
para usuarios windows usar:
"start": "SET NODE_ENV=production & node index",
En windows el valor de process.env.NODE_ENV me daba 'production ’ más un espacio, haciendo que la variable isDev nunca sea falsa.
para superar lo anterior le tuve que agregar un trim, quedo de la siguiente manera.
const isDev = process.env.NODE_ENV.trimRight() !== ‘production’;
Les comento por si tienen el mismo problema.
Me gustaría saber cuando van a dar el curso avanzado ?
NODE_ENV en Windows
Enero 2022
Les traigo una actualización
a partir las soluciones proporcionadas
por mis compañeros
jhon manuel angulo moncada y Nanglesc
En package.json tendremos
"scripts": {
"start": "SET NODE_ENV=production & node index",
"dev": "nodemon -e js,graphql index",
"lint": "standard",
"lint-fix": "standard --fix",
"test": "echo \"Error: no test specified\" && exit 1"
}
Y asegúrense de quitar el espacio
de la variable NODE_ENV
con trimEnd().
const isDev = process.env.NODE_ENV.trimEnd() !== 'production';
Debemos hacer npm i cors
para que nuestra API pueda ser consumida desde cualquier lado.
Para hacer que esté listo nuestro entorno en producción hacemos lo siguiente:
En index.js:
const cors = require("cors");
const isDev = process.env.NODE_ENV.trimRight() !== "production"
//* Hacemos trimRight porque el NODE_ENV viene con un espacio al final, en package.json
app.use(cors());
app.use('/api', graphqlHTTP({
schema,
rootValue: resolvers,
graphiql: isDev
}));
En el package.json:
{
"scripts": {
"start": "SET NODE_ENV=production & node index"
}
}
para apollo-server
const server = new ApolloServer({
cors: {
origin: '*',
credentials: true
},
schema,
playground: true
})
1- Instalar
npm i cors
Mas info <https://expressjs.com/en/resources/middleware/cors.html>
2- En index.js agregar
const cors = require('cors')
3- Validar si estamos en modo desarrollo o produccion
const isDev = process.env.NODE_ENV !== 'production';
app.use('/api', graphqlHTTP({ schema, rootValue: resolvers, graphiql: isDev }));
5- en package.json agregamos una nuevo script que correra en para produccion
"scripts": {
"start": "NODE_ENV=production node index",
"dev": "nodemon -e js,graphql index.js",
"lint": "standard || exit 0",
"lint-fix": "standard --fix",
"test": "echo \"Error: no test specified\" && exit 1"
},
{“errors”:[{“message”:“Must provide query string.”}]}
Gracias Prof. El curso para principiantes esta bien, en realidad aporto muy poco, con respecto al que ya existia.
Si son usuarios de Windows pueden usar cross-env para no tener problemas con las variables de entorno en los comandos:
// package.json
{
...,
"scripts": {
"start": "cross-env NODE_ENV=production node index.js",
"dev": "cross-env NODE_ENV=development nodemon -e js,graphql index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
...
}
Les facilito aquí la librería de cors para que puedan profundizar en la documentación
Me gustó mucho la clase 20. Excelente forma de hacer búsquedas!
En windows tira error por lo que hay que agregar “SET” antes de “NODE_ENV”
“start”: “SET NODE_ENV=production & node index”
Pero esto genera un espacio vacio despues del string ‘production’ así que simplemente agreguen ese espacio vacio y listo.
const isDev = process.env.NODE_ENV !== 'production ’
Espero les sirva de ayuda
npm ERR! errno 1
npm ERR! [email protected] start: NODE_ENV=production node index.js
npm ERR! Exit status 1
Usen gitbash o zsh en hyper
Muchas gracias por la sencilla y rápida explicación para usar cors instructor Adrián.
Excelente tip
npm ERR! errno 1
npm ERR! [email protected] start: NODE_ENV=production node index.js
npm ERR! Exit status 1
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.