📌  相关文章
📜  网络技术问题 | Node.js 测验 |第 3 组 |问题2(1)

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

网络技术问题 | Node.js 测验 | 第 3 组 | 问题2

简介

欢迎参加 Node.js 测验的第 3 组!本测验中,我们将测试你对于 Node.js 中的网络技术的理解和应用能力。问题2是本次测验的第二个问题,让我们一起来看看吧!

问题描述

请编写一个 Node.js 服务器应用程序,当客户端向服务器发送 GET 请求时,返回一个包含当前服务器时间的 JSON 对象。

示例

以下是一个简单的实例,描述了问题的要求和预期结果。

请求
GET /time HTTP/1.1
Host: localhost:3000
响应
HTTP/1.1 200 OK
Content-Type: application/json

{
  "time": "2022-10-10 15:00:00"
}
要求
  • 使用 Node.js 来创建服务器应用程序。
  • 当客户端发送 GET 请求到 /time 路径时,返回一个包含当前服务器时间的 JSON 对象。
  • JSON 对象的格式应该如下:
{
  "time": "YYYY-MM-DD HH:mm:ss"
}

其中,YYYY 表示年份,MM 表示月份,DD 表示日期,HH 表示小时,mm 表示分钟,ss 表示秒钟。

提示
  • 可以使用 http 模块来创建服务器应用程序,并通过 request 事件来处理客户端的请求。
  • 可以使用 Date 对象获取当前服务器时间,并使用相关方法将其格式化为需要的字符串格式。
参考答案

以下是一个可能的参考答案,供参考。

const http = require('http');

const server = http.createServer((req, res) => {
  if (req.url === '/time' && req.method === 'GET') {
    const currentDate = new Date();
    const formattedTime = `${currentDate.getFullYear()}-${currentDate.getMonth() + 1}-${currentDate.getDate()} ${currentDate.getHours()}:${currentDate.getMinutes()}:${currentDate.getSeconds()}`;
    const jsonResponse = { time: formattedTime };

    res.writeHead(200, { 'Content-Type': 'application/json' });
    res.end(JSON.stringify(jsonResponse));
  } else {
    res.writeHead(404, { 'Content-Type': 'text/plain' });
    res.end('404 Not Found');
  }
});

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

请注意,上述代码仅为参考,你可以根据自己的实际理解和需要进行调整。

总结

问题2要求你编写一个返回当前服务器时间的 Node.js 应用程序。希望这个问题能够帮助你提升对于 Node.js 中网络技术的理解和应用能力。加油!