📜  如何使用 NodeJS 返回 JSON?

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

如何使用 NodeJS 返回 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
  • 第 3 步(使 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,您将看到以下输出。

方法二(使用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 数据。

例子:

索引.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 数据,并且都会产生相同的输出。