JSON significa JavaScript Object Notation. É um dos formatos mais usados ​​para troca de informações entre aplicativos. Node.js oferece suporte a várias estruturas que ajudam a tornar os processos mais suaves. As maneiras a seguir cobrem como retornar dados JSON em nosso aplicativo do Node.js.

Método 1 (usando Express.js): Express é uma estrutura de aplicativo da web de back-end para Node.js. É uma das estruturas padrão que é usada por muitos desenvolvedores. Para instalá-lo, usaremos o NPM (Node Package Manager).

  • Etapa 1 (Instalando o npm em nosso diretório): Para instalar o npm em um projeto, vá até o terminal e altere seu diretório de trabalho atual para esse projeto. Em seguida, use o comando npm init para inicializar o arquivo package.json.

    $cd {diretório do seu projeto}
    $npm init
  • Passo 2 (Instalando o Express): Agora que temos o npm instalado em nosso projeto, podemos instalar o Express usando o comando npm install em nosso terminal.

    $npm install express --save
  • Passo 3 (Tornando o Express pronto para uso): Depois de instalar o Express, podemos começar a escrever o código em nosso servidor. Precisamos exigir um módulo expresso antes de usá-lo, e podemos fazer isso adicionando o código fornecido a seguir no topo do nosso código de servidor.



    const express = require ('express');
    const app = express();
  • Passo 4 (Usando express para retornar dados JSON): Agora nosso express está completamente pronto para uso. No exemplo abaixo, estamos retornando dados da seguinte maneira:

    • Na rota '/', estamos retornando um objeto que contém um único par de valores-chave.
    • Na rota '/ multiple', estamos retornando um objeto que contém vários pares de chave-valor.
    • Na rota '/ array', estamos retornando uma array de objetos, cada um com vários pares de valores-chave.

Exemplo:

// 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");
});

Etapa para executar o aplicativo: execute o aplicativo usando o seguinte comando do diretório raiz do projeto.

node index.js

Saída:

  • Agora abra seu navegador e vá para http: // localhost: 3000 / , você verá a seguinte saída.
  • Vá para http: // localhost: 3000 / multiple, você verá a seguinte saída.
  • Vá para http: // localhost: 3000 / array, você verá a seguinte saída.

Método 2 (usando a interface HTTP): embora o primeiro método seja suficiente para a maioria das soluções, há outro método que usa a interface HTTP por Node.js e retorna dados JSON. O Node.js vem com um módulo HTTP embutido, portanto, não teremos que instalá-lo separadamente como fizemos no Express.

  • Etapa 1 (Tornar HTTP pronto para uso): Precisamos exigir HTTP em nosso servidor para poder usá-lo. Isso pode ser feito simplesmente adicionando o código abaixo ao nosso servidor.

    var http = requer ('http');
  • Etapa 2 (usando http e JSON.stringify() para retornar dados JSON): Agora usaremos http.createServer() e JSON.stringify() para retornar dados JSON de nosso servidor.

Exemplo:

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);

Etapa para executar o aplicativo: execute o aplicativo usando o seguinte comando do diretório raiz do projeto.

node index.js

Saída:

Agora abra seu navegador e vá para http: // localhost: 3000 / , você verá a seguinte saída.

Nota: Ambos os métodos podem ser usados ​​para retornar dados JSON do servidor e ambos produzirão a mesma saída.