介绍
在这个项目中,你将学习如何使用 Node.js 创建一个简单的新闻 API。你将学习如何创建一个服务器,处理不同的路由,并以特定格式返回新闻数据。
👀 预览
curl http://localhost:8080/news
## 输出:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"国内焦点"},{"channelId":"5572a108b3cdc86cf39001ce","name":"国际焦点"}]
curl http://localhost:8080
## 输出:
## 404
🎯 任务
在这个项目中,你将学习:
- 如何使用 Node.js 创建一个服务器
- 如何处理
/news路由并返回新闻数据 - 如何处理其他路由并返回 404 响应
🏆 成果
完成这个项目后,你将能够:
- 理解使用 Node.js 创建服务器的基础知识
- 实现一个简单的 API 来返回新闻数据
- 处理不同的路由并提供适当的响应
创建一个服务器
首先,打开编辑器。你应该会在编辑器中看到一个文件——“app.js”。
在这一步中,你将学习如何使用 Node.js 创建一个服务器。按照以下步骤完成此步骤:
在你的编码环境中打开“app.js”文件。
导入
http模块,该模块提供创建服务器的功能:const http = require("http");使用
createServer()方法创建一个新服务器:const serve = http.createServer();为服务器添加一个事件监听器,以处理传入的请求:
serve.on("request", (req, res) => { // 待办事项:添加处理请求的代码 });启动服务器并监听端口 8080:
serve.listen(8080, () => { console.log("服务已启动!"); });
处理 /news 路由
在这一步中,你将学习如何处理/news路由并返回新闻数据。按照以下步骤完成此步骤:
在请求事件监听器内部,设置响应头以使用
utf8格式:res.setHeader("Content-type", "text/html;charset=utf8");检查请求的 URL:
if (req.url == "/news") { // 处理 /news 路由 } else { // 处理其他路由 }以所需格式准备新闻数据:
const data = [ { channelId: "5572a108b3cdc86cf39001cd", name: "国内焦点" }, { channelId: "5572a108b3cdc86cf39001ce", name: "国际焦点" } ];将新闻数据作为响应发送:
res.end(JSON.stringify(data));
处理其他路由
在这一步中,你将学习如何处理除/news之外的其他路由。
在请求事件监听器内部,添加一个
else块来处理其他路由:if (req.url == "/news") { // 处理 /news 路由 //... } else { // 处理其他路由 res.end("404"); }在
else块中,发送一个404响应,以表明请求的路由未找到。
现在,你的app.js文件应该如下所示:
const http = require("http");
const serve = http.createServer();
serve.on("request", (req, res) => {
// 待办事项:添加处理请求的代码
res.setHeader("Content-type", "text/html;charset=utf8");
console.log(req.url);
if (req.url == "/news") {
const data = [
{
channelId: "5572a108b3cdc86cf39001cd",
name: "国内焦点"
},
{
channelId: "5572a108b3cdc86cf39001ce",
name: "国际焦点"
}
];
res.end(JSON.stringify(data));
} else {
res.end("404");
}
});
serve.listen(8080, () => {
console.log("服务已启动!");
});
测试服务器
在终端中使用以下命令运行服务器:
node app.js再次打开一个新终端,并使用以下命令验证终端是否正确:
curl http://localhost:8080/news
## 输出:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"国内焦点"},{"channelId":"5572a108b3cdc86cf39001ce","name":"国际焦点"}]
curl http://localhost:8080
## 输出:
## 404
恭喜你!你已成功使用 Node.js 创建了一个新闻 API。
总结
恭喜你!你已完成这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。



