javaScript蓝桥杯----资讯接口

news2024/12/23 22:28:01

目录

  • 一、介绍
  • 二、准备
  • 三、目标
  • 四、代码
  • 五、知识点
    • 1.res.end()
    • 2.res.end与res.send
  • 六、完成


一、介绍

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

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

二、准备

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

└── app.js

三、目标

  1. 通过在 app.js 书写代码,创建一个服务器,使服务在 8080 端口运行。
  2. 访问 /news 返回资讯数据,访问其他任意路径均返回字符串 404 。
    在这里插入图片描述

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

[
  {
    "channelId": "5572a108b3cdc86cf39001cd",
    "name": "国内焦点"
  },
  {
    "channelId": "5572a108b3cdc86cf39001ce",
    "name": "国际焦点"
  }
]

设置 utf8 格式代码:

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

四、代码

app.js

//TODO:待补充代码

五、知识点

1.res.end()

res.end()方法是Node.js的HTTP模块中的一个方法,用于结束响应并发送响应数据给客户端。根据Node.js的官方文档,res.end()方法的参数可以是以下几种类型之一:

  1. 字符串:作为响应的主体内容发送给客户端。
  2. Buffer:作为原始字节发送给客户端。
  3. 字符串数组:每个数组元素将作为单独的块发送给客户端。客户端将按照接收到的顺序连接这些块以形成完整的响应体。

2.res.end与res.send

当您在使用Markdown格式时,我将为您提供相应的文本:

res.end()res.send() 都是用于结束响应并向客户端发送响应数据的方法,但它们通常用于不同的框架和环境中,具体取决于您使用的技术栈。

  1. res.end()

    • 是Node.js核心HTTP模块的方法,用于在原始HTTP服务器中结束响应并发送响应数据。
    • 可以用于创建自定义的服务器。
    • 接收一个可选的参数,用于指定要作为响应主体发送的数据,可以是字符串、Buffer或字符串数组。

    示例:

    const http = require("http");
    
    const server = http.createServer((req, res) => {
      res.setHeader("Content-Type", "text/plain");
      res.end("Hello, World!");
    });
    
    server.listen(8080, () => {
      console.log("Server listening on port 8080");
    });
    
  2. res.send()

    • 是一种常见的方法,通常在Web框架(如Express.js)中使用,用于发送HTTP响应。
    • 是Express.js提供的便捷方法,自动处理响应的内容类型、编码等,根据传入的参数自动选择合适的方式发送响应。

    示例:

    const express = require("express");
    const app = express();
    
    app.get("/", (req, res) => {
      res.send("Hello, World!");
    });
    
    app.listen(8080, () => {
      console.log("Server listening on port 8080");
    });
    

总结来说,res.end() 是Node.js核心HTTP模块的方法,适用于原始的HTTP服务器,而 res.send() 通常在Web框架中使用,用于发送响应,并提供了更多便捷的功能,如自动处理响应类型。

六、完成

// TODO: 待补充代码
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("ok");
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vim学习笔记【Ch03】

Vim学习笔记 系列笔记链接Ch03 Searching FilesVim中打开和编辑文件用Find进行文件搜索用grep进行文件内搜索:vim搜索:grep搜索 通过Netrw浏览文件Fzffzf和ripgrep安装fzf配置fzf语法查找文件在文件内部查找用Rg代替Grep在多个文件中搜索和替换 小结 系列笔记链接 Ch00&#x…

【论文速览】根据人脑fMRI信号重建图像 Image Reconstruction from human brain activity

文章目录 前言文章一研究背景主要方法部分实验结果总结与思考参考资料 文章二研究背景主要方法部分实验结果总结与思考 前言 人类的视觉神经系统对于真实世界的视觉刺激有着非凡的感知与理解能力,比如我们能够准确地识别物体距离和三维几何关系等,这是当…

2023/6/4总结

CSS的学习: 2023-06-01 19-57-46-649 移动开发流式布局: 流式布局,是根据百分比布局,因为手机的尺寸会不一样,所以利用百分比布局可以很好的解决缩放以及尺寸问题: 这是跟着视频做的一个案例:…

Lecture 8 Deep Learning for NLP: Recurrent Networks

目录 Problem of N-gram Language Model N-gram 语言模型的问题Recurrent Neural Network(RNN) 循环神经网络RNN Language Model: RNN 语言模型Long Short-Term Memory Model (LSTM) 长短期记忆模型(LSTM)Gating Vector 门向量Forget Gate 忘记门Input G…

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

Nginx-rewrite模块详细介绍

Nginx-rewrite模块 前言一、Nginx-rewrite模块概述1、rewrite场景2、rewrite实现3、rewrite执行顺序4、语法格式 二、rewrite示例1、基于域名的跳转2、基于客户端IP访问跳转3、基于旧域名跳转到新域名后面加目录4、基于参数匹配的跳转5、基于目录下所有 php 结尾的文件跳转6、基…

代码报错 | 出bug-->该如何调试?

代码报错 | 出bug-->该如何调试? 什么叫做bug调试是什么?有多重要?Debug和Release的介绍调试常用的快捷键调试时查看程序当前的信息 如何写出好(易于调试)的代码对const的通俗生活中举例assert的理解 编译常见的错误…

Java程序员面试经验总结

目录 一、企业是如何筛选简历的1.简历筛选流程2.HR如何筛选简历3.部门负责人筛选简历4.总结-简历筛选规则 二、简历注意事项1.简历整体结构2.职业技能3.项目经历4.总结 三、应届毕业生改如何找到合适的练手项目1.项目来源2.如何深入学习项目3.应该学习哪些模块4.模块该如何吃透…

【owt】WebrtcNode, subscribe-sdp offer 流程(1)

sdp offer 流程 1. AmqpClient - New message received sdp offer 的消息 2023-04-26T21:54:19.790 - DEBUG: AmqpClient - RpcServer New message received {method: onTransportSignaling,args: [b149e44bb10d4e91bd162a8c6806ae7b,{sdp: v0\r\n o- 7177131362423164715 …

K8S常见应用场景(六)

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kubernetes 这个名字源于希腊语,意为“…

【Java系列】Mybatis-Plus 使用介绍二

序言 你只管努力,其他交给时间,时间会证明一切。 MyBatis-Plus 是 MyBatis 的增强工具,它简化了 MyBatis 的开发,并提供了许多实用的功能和工具类。下面是 MyBatis-Plus 的使用方法: 1 使用方法 1. 引入依赖 在 Maven…

MySQL数据库 9.DQL操作

目录 ​编辑 🤔前言: 🤔DQL介绍: 🤔查询种类: 1.基本查询: 🔍1.查询多个字段: 🔍2.查询所有字段: 🔍3.去除重复记录&#xff…

【数据结构】常见排序算法——常见排序介绍、插入排序、直接插入排序、希尔排序

文章目录 1.排序的概念和应用1.1排序的概念1.2排序的运用1.3常见的排序算法 2.常见的排序算法2.1插入排序2.1.1直接插入排序2.1.2希尔排序 1.排序的概念和应用 1.1排序的概念 在计算机科学中,排序是将一组数据按照指定的顺序排列的过程。排序算法由于执行效率的不同…

01_爬虫基础知识和requests模块简介

爬虫基础知识 1、爬虫简介: 爬虫的作用:帮助我们把网站信息快速提取并保存爬虫的分类: 通用爬虫聚集爬虫爬虫的安全知识:目前来说,无明确法律规定,但每个官网都有自己的爬虫协议(网址后面加/robots.txt)爬虫的爬取流程: 1、获取网页2、提取信息3、保存数据2、爬虫必须…

分布式软件架构——远程服务调用

序言 “架构师”可以是做企业战略设计的架构师,也可以说做业务流程分析的架构师。 架构师视角特指软件系统中技术模型的系统设计者。 在做架构设计的时候,架构师应该思考哪些问题、可以选择哪些主流的解决方案和行业标准做法,以及这些主流方…

【自制C++深度学习框架】前言

KuiperCourse 介绍 此GitHub项目是一个初学者的深度学习框架,使用C编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能: 计算图:使用计算图来描述深度学习模型的计算过程,利用计…

气球飘飘:用Java Swing创造令人心旷神怡的视觉奇观

✨博主:命运之光 ✨专栏:Java经典程序设计 前言:这篇博客在手机上打开可能会自动播放视频,视频有音乐,请及时关闭手机音乐哈🙂 目录 ✨导语 ✨引言 ✨简单介绍一下Javaswing这项技术简单介绍一下Javaswi…

简单的UDP网络程序·续写

该文承接文章 简单的UDP网络程序 对于客户端和服务端的基本源码参考上文,该文对服务器润色一下,并且实现几个基本的业务服务逻辑 目录 demo1 第一个功能:字典翻译 初始化字典 测试代码:打印 字符串分割 客户端修改 成品效果…

idea如何一个项目启动两个tomcat服务(不同端口)

目录 第一步:创建一个普通的springboot项目 第二步:编写一个controller代码,用来接收请求 第三步:复制服务,端口设置为8081 第四步:依次访问8080、8081两个服务进行测试 第一步:创建一个普通…

基于JavaWeb的保护动物管理系统设计与实现

摘要:随着全球一些稀有物种、野生动物日益稀少,保护动物已经成为全球多个国家开始重视并投入大量物力着手解决的重要课题。动物是大自然的产物,自然界是由许多复杂的生态系统构成的。有一种植物消失了,以这种植物为食的昆虫就会消…