JSON significa Notación de objetos de JavaScript. Es uno de los formatos más utilizados para el intercambio de información entre aplicaciones. Node.js admite varios marcos que ayudan a que los procesos sean más fluidos. Las siguientes formas cubren cómo devolver datos JSON en nuestra aplicación desde Node.js.
Método 1 (usando Express.js): Express es un marco de aplicaciones web de back-end para Node.js. Es uno de los marcos estándar que utilizan muchos desarrolladores. Para instalarlo, usaremos NPM (Node Package Manager).
-
Paso 1 (Instalar npm en nuestro directorio): Para instalar npm en un proyecto, diríjase a la terminal y cambie su directorio de trabajo actual a ese proyecto. Luego, use el comando npm init para inicializar el archivo package.json.
$cd {your-project-directory} $npm init
-
Paso 2 (Instalación de Express): ahora que tenemos npm instalado en nuestro proyecto, podemos instalar Express usando el comando npm install en nuestra terminal.
$npm install express --save
-
Paso 3 (Preparar Express para usar): Después de instalar Express, podemos comenzar a escribir código en nuestro servidor. Necesitamos un módulo express antes de usarlo, y podemos hacerlo agregando el código que se proporciona a continuación en la parte superior de nuestro código de servidor.
const express = require('express'); const app = express();
-
Paso 4 (Uso de express para devolver datos JSON): ahora nuestro express está completamente listo para usar. En el ejemplo que se muestra a continuación, estamos devolviendo datos de la siguiente manera:
- En la ruta ‘/’, devolvemos un objeto que contiene un solo par clave-valor.
- En la ruta ‘/múltiple’, devolvemos un objeto que contiene varios pares clave-valor.
- En la ruta ‘/array’, estamos devolviendo una array de objetos, cada uno con múltiples pares clave-valor.
Ejemplo:
index.js
// Requiring express in our server const express = require('express'); const app = express(); // Defining get request at '/' route app.get('/', function(req, res) { res.json({ number: 1 }); }); // Defining get request at '/multiple' route app.get('/multiple', function(req, res) { res.json({ number: 1, name: 'John', gender: 'male' }); }); // Defining get request at '/array' route app.get('/array', function(req, res) { res.json([{ number: 1, name: 'John', gender: 'male' }, { number: 2, name: 'Ashley', gender: 'female' } ]); }); // Setting the server to listen at port 3000 app.listen(3000, function(req, res) { console.log("Server is running at port 3000"); });
Paso para ejecutar la aplicación: Ejecute la aplicación usando el siguiente comando desde el directorio raíz del proyecto.
node index.js
Producción:
- Ahora abra su navegador y vaya a http://localhost:3000/ , verá el siguiente resultado.
- Vaya a http://localhost:3000/multiple, verá el siguiente resultado.
- Vaya a http://localhost:3000/array, verá el siguiente resultado.
Método 2 (usando la interfaz HTTP): aunque el primer método es suficiente para la mayoría de las soluciones, hay otro método que usa la interfaz HTTP de Node.js y devuelve datos JSON. Node.js viene con un módulo HTTP incorporado, por lo que no tendremos que instalarlo por separado como hicimos con Express.
-
Paso 1 (Hacer que HTTP esté listo para usar): Necesitamos requerir HTTP en nuestro servidor para poder usarlo. Esto se puede hacer simplemente agregando el siguiente código a nuestro servidor.
var http = require('http');
-
Paso 2 (usando http y JSON.stringify() para devolver datos JSON): ahora usaremos http.createServer() y JSON.stringify() para devolver datos JSON de nuestro servidor.
Ejemplo:
index.js
var http = require('http'); var app = http.createServer(function(req,res){ res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ number: 1 , name: 'John'})); }); app.listen(3000);
Paso para ejecutar la aplicación: Ejecute la aplicación usando el siguiente comando desde el directorio raíz del proyecto.
node index.js
Producción:
Ahora abra su navegador y vaya a http://localhost:3000/ , verá el siguiente resultado.
Nota: Ambos métodos se pueden usar para devolver datos JSON desde el servidor y ambos producirán el mismo resultado.
Publicación traducida automáticamente
Artículo escrito por greenblade29 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA