📜  node.js 返回 json - Javascript (1)

📅  最后修改于: 2023-12-03 14:44:43.204000             🧑  作者: Mango

Node.js 返回 JSON

在 Node.js 中,我们可以很容易地将数据以 JSON 格式返回给客户端。JSON 是一种轻量级的数据交换格式,它被广泛地应用于 Web 应用程序中。

简述

在 Node.js 中,我们可以使用 JSON.stringify() 方法将一个 JavaScript 对象转换为 JSON 字符串。我们可以将该字符串通过 HTTP 响应发送给客户端,从而实现数据的传输。

以下是一个简单例子,演示如何在 Node.js 中返回 JSON 数据:

const http = require('http');

const server = http.createServer((req, res) => {
  // 设置 HTTP 头部
  res.writeHead(200, {'Content-Type': 'application/json'});
  
  // 创建一个 JavaScript 对象
  const data = {
    name: 'Alice',
    age: 27,
    email: 'alice@example.com'
  };
  
  // 将 JavaScript 对象转换为 JSON 字符串
  const json = JSON.stringify(data);
  
  // 发送 JSON 数据
  res.end(json);
});

server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

在上面的代码中,我们创建了一个 HTTP 服务器,当客户端发送请求时,它会返回一个 JSON 格式的数据。

返回 HTTP 状态码

在上面的例子中,我们通过 res.writeHead() 方法设置了 HTTP 头部信息。其中第一个参数表示 HTTP 状态码,这个参数非常重要,因为它告诉客户端请求的状态是否成功。

以下是一些常见的 HTTP 状态码:

  • 200 OK:表示请求成功。
  • 201 Created:表示请求已经创建了新的资源。
  • 204 No Content:表示请求成功,但没有返回任何内容。
  • 400 Bad Request:表示客户端发送的请求有错误。
  • 401 Unauthorized:表示客户端未被授权访问。
  • 404 Not Found:表示请求的资源不存在。
  • 500 Internal Server Error:表示服务器出现了错误。

在实际开发中,我们应该选择适当的 HTTP 状态码来表示请求的结果。例如在以上代码中,我们选择使用 200 状态码表示请求成功返回了 JSON 数据。

使用 Express

除了使用 Node.js 原生的 http 模块,我们还可以使用 Express,一个常用的 Web 框架,来快速地搭建 Web 应用程序。以下是一个例子:

const express = require('express');
const app = express();

// 创建路由
app.get('/api/users', (req, res) => {
  // 创建一个 JavaScript 对象
  const users = [
    {id: 1, name: 'Alice', email: 'alice@example.com'},
    {id: 2, name: 'Bob', email: 'bob@example.com'},
    {id: 3, name: 'Charlie', email: 'charlie@example.com'}
  ];

  // 返回 JSON 数据
  res.send(users);
});

// 启动服务器
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

在上面的代码中,我们创建了一个路由 /api/users,当客户端访问该路由时,它会返回一个包含用户信息的 JSON 数组。

总结

在 Node.js 中,我们可以使用 JSON.stringify() 方法将一个 JavaScript 对象转换为 JSON 字符串,从而实现数据的传输。

除了原生的 http 模块,我们还可以使用 Express 框架来快速地搭建 Web 应用程序,实现 JSON 数据的返回。