当前位置: 首页 > article >正文

node.js基础学习-http模块-创建HTTP服务器、客户端(一)

http模块式Node.js内置的模块,用于创建和管理HTTP服务器。Node.js使用JavaScript实现,因此性能更好。
使用http模块创建服务器,我们建议使用commonjs模块规范,因为很多第三方的组件都使用了这种规范。当然es6写法也支持。

下面就是创建一个简单的Node.js服务器。

//使用http模块创建服务器,我们建议使用commonjs模块规范,因为很多第三方的组件都使用了这种规范。当然es6写法也支持。
//http模块式Node.js内置的模块,用于创建和管理HTTP服务器。传统的HTTP服务器一般使用C语言编写,但Node.js使用JavaScript实现,因此性能更好。
const http = require('http')

//创建服务器,监听3000端口
http.createServer((req, res) => {
    //判断请求url是否为favicon.ico,如果是则返回空(这个请求是一个浏览器的默认请求,可以忽略)
    if (req.url === '/favicon.ico') {
        return
    }

    //设置响应头,状态码为200,内容类型为text/html;charset=utf-8,这种才能正常显示中文
    res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'})
    //分配响应内容
    res.write(switchPage(req.url))
    //这里必须要end,否则会出现卡死的情况
    res.end()
}).listen(3000, () => {
    console.log('Server is running on port 3000')
})

/**
 * 根据url返回对应的页面内容
 * @param url
 * @returns {*|string}
 */
const switchPage = (url) => {
    return {
        '/home': `<h1>Home Page</h1><p>Welcome to my website</p>`,
        '/about': `<h1>About Page</h1><p>This is a paragraph about me</p><img src="https://picsum.photos/200" alt="Random Image">`,
        '/list': `<h1>List Page</h1><ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>`,
    }[url] || `<h1>404 Not Found</h1><p>The page you are looking for does not exist</p>`
}

浏览器输入http://localhost:3000/about,页面就会呈现以下这种


http://www.kler.cn/a/417640.html

相关文章:

  • 大型三甲医院算力网络架构的深度剖析与关键技术探索
  • SpringSecurity密码编码器:使用BCrypt算法加密、自定义密码编码器
  • 【技术追踪】DiffMIC:用于医学图像分类的双引导扩散网络(MICCAI-2024)
  • ComfyUI安装调用DeepSeek——DeepSeek多模态之图形模型安装问题解决(ComfyUI-Janus-Pro)
  • 文本复制兼容方案最佳实现落地。
  • unity学习26:用Input接口去监测: 鼠标,键盘,虚拟轴,虚拟按键
  • jeecgbootvue2重新整理数组数据或者添加合并数组并遍历背景图片或者背景颜色
  • 三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序
  • AI前景分析展望——GPTo1 SoraAI
  • 浮点数计算,不丢失精度
  • 第二部分shell----二、shell 条件测试
  • Flutter 1.2:flutter配置gradle环境
  • Docker初识-架构
  • 【C++boost::asio网络编程】有关socket的创建和连接的笔记
  • 半导体制造检测新突破:XARION 激光超声无损检测系统的应用
  • element的el-table表格标题用css自定义是否必填,用添加伪类的方式标红色*
  • Ubuntu 安装 MariaDB
  • Spring Boot【三】
  • Java的类和对象
  • SMOTE | 使用SMOTE算法来处理不平衡数据的问题
  • 【Linux】【字符设备驱动】深入解析
  • LabVIEW实现UDP通信
  • Android获取状态栏、导航栏的高度
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue文化创意展示与交流平台【提供源码+答辩PPT+文档+项目部署】
  • YOLO系列论文综述(从YOLOv1到YOLOv11)【第14篇:YOLOv11——在速度和准确性方面具有无与伦比的性能】
  • 动捕 动作捕捉学习笔记