资讯接口

介绍

随着技术的发展,很多前端工程师已经不满足于只做诸如页面布局和交互这些开发工作了,很多人将目光逐渐转向了“大前端”范围,其中就包括不需要依赖后端提供接口自己就可以使用 node.js 编写一个后端接口服务。

下面就让我们也来使用 node.js 完成一个新闻资讯接口吧。

准备

本题已经内置了初始代码,打开实验环境,目录结构如下:

1
└── app.js

目标

  1. 通过在 app.js 书写代码,创建一个服务器,使服务在 8080 端口运行。
  2. 访问 /news 返回资讯数据,访问其他任意路径均返回字符串 404
Url 请求方式 参数 响应结果
news GET 显示资讯数据

数据需要设置为 utf8 格式,资讯数据格式如下:

1
2
3
4
5
6
7
8
9
10
[
{
"channelId": "5572a108b3cdc86cf39001cd",
"name": "国内焦点"
},
{
"channelId": "5572a108b3cdc86cf39001ce",
"name": "国际焦点"
}
]

设置 utf8 格式代码:

1
res.setHeader("Content-type", "text/html;charset=utf8");
  1. 通过 node app.js 运行代码,使服务处于运行状态,点击右侧 【web 服务】,页面上显示访问域名+’/news’ 返回资讯数据。效果如下:

图片描述

规定

  • 请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径等。
  • 满足题目需求后,保持 Web 服务处于可以正常访问状态,点击「提交检测」系统会自动判分

判分标准

  • 本题完全实现题目目标得满分,否则得 0 分。

总通过次数: 811 | 总提交次数: 1029 | 通过率: 78.8%

难度: 中等 标签: 2022, 省模拟赛, Web 前端, Node.js

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const http = require('http');

// 资讯数据
const newsData = JSON.stringify([
{
"channelId": "5572a108b3cdc86cf39001cd",
"name": "国内焦点"
},
{
"channelId": "5572a108b3cdc86cf39001ce",
"name": "国际焦点"
}
]);

// 创建服务器
const server = http.createServer((req, res) => {
// 设置响应头,指定字符集为 utf8
res.setHeader("Content-type", "text/html;charset=utf8");

// 根据请求路径返回不同的响应
if (req.url === '/news' && req.method === 'GET') {
// 如果请求路径是 /news,并且请求方法是 GET,则返回资讯数据
res.writeHead(200);
res.end(newsData);
} else {
// 其他任意路径均返回 404
res.writeHead(404);
res.end('404 Not Found');
}
});

// 监听 8080 端口
server.listen(8080, () => {
console.log('Server is running on port 8080');
});