📜  如何使用 Node.js 返回 JSON?

📅  最后修改于: 2022-05-13 01:56:43.784000             🧑  作者: Mango

如何使用 Node.js 返回 JSON?

JSON 代表 JavaScript 对象表示法。它是用于跨应用程序交换信息的最广泛使用的格式之一。 Node.js支持各种有助于使流程更顺畅的框架。以下方法介绍了如何在我们的应用程序中从 Node.js 返回 JSON 数据。

方法 1(使用 Express.js): Express是 Node.js 的后端 Web 应用程序框架。它是许多开发人员使用的标准框架之一。要安装它,我们将使用NPM (节点包管理器)。

  • 第 1 步(在我们的目录中安装 npm):要在项目中安装 npm,请转到终端并将当前工作目录更改为该项目。然后,使用 npm init 命令初始化 package.json 文件。

    $ cd {your-project-directory}
    $ npm init
  • 第 2 步(安装 express):现在我们已经在项目中安装了 npm,我们可以在终端中使用 npm install 命令安装 Express。

    $ npm install express --save
  • 第三步(准备使用 express):安装 express 后,我们就可以开始在我们的服务器上编写代码了。在使用它之前,我们需要一个 express 模块,我们可以通过在我们的服务器代码顶部添加下面给出的代码来做到这一点。

    const express = require('express');
    const app = express();
  • 第 4 步(使用 express 返回 JSON 数据):现在我们的 express 完全可以使用了。在下面给出的示例中,我们以下列方式返回数据:

    • 在 '/' 路由中,我们返回一个包含单个键值对的对象。
    • 在 '/multiple' 路由中,我们返回一个包含多个键值对的对象。
    • 在 '/array' 路由中,我们返回一个对象数组,每个对象都有多个键值对。

例子:

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


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


运行应用程序的步骤:使用以下命令从项目的根目录运行应用程序。

node index.js

输出:

  • 现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出。
  • 转到http://localhost:3000/multiple,您将看到以下输出。
  • 转到http://localhost:3000/array,您将看到以下输出。

方法2(使用HTTP接口):虽然第一种方法对于大多数解决方案来说已经足够了,但还有另一种方法是Node.js使用HTTP接口并返回JSON数据。 Node.js 带有一个内置的 HTTP 模块,因此我们不必像为 express 那样单独安装它。

  • 第 1 步(使 HTTP 准备好使用):我们需要在我们的服务器中要求 HTTP 才能使用它。这可以简单地通过将以下代码添加到我们的服务器来完成。

    var http = require('http');
  • 第 2 步(使用 http 和 JSON.stringify() 返回 JSON 数据):我们现在将使用 http.createServer() 和JSON.stringify()从我们的服务器返回 JSON 数据。

例子:

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

运行应用程序的步骤:使用以下命令从项目的根目录运行应用程序。

node index.js

输出:

现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出。

注意:这两种方法都可用于从服务器返回 JSON 数据,并且都将产生相同的输出。