热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过nodejs搭建HTTP服务器

文章目录通过nodejs搭建HTTP服务器前提搭建步骤实例启动服务器通过nodejs搭建HTTP服务器nodejs是一个用于解析执行javaScript代码的环境(它


文章目录

    • 通过nodejs搭建HTTP服务器
      • 前提
      • 搭建步骤
      • 实例
      • 启动服务器


通过nodejs搭建HTTP服务器


nodejs是一个用于解析执行Javascript代码的环境(它不是语言,不是框架),通过nodejs,Javascript可以完全脱离浏览器运行,也可以用于搭建服务器。



前提


  • 安装好nodejs
  • 搭建HTTP服务器,我们需要Nodejs提供的API

搭建步骤

1. 引入依赖【加载nodejs提供的API—http,此模块的职责就是创建并编写服务器】
2. 创建web服务器【通过http.createserver()方法创建一个web服务器】
3. 处理服务器接到的请求【通过server.on()定义服务器接收请求后如何处理,以及返回什么响应内容】
4. 为服务器绑定端口号【通过server.listen()绑定,成功后,启动服务器就可以通过该端口号来访问】


实例

// 1. 加载http核心模块
let http = require("http");// 2. 使用http.createServer()方法创建一个web服务器,通过server接收
let server = http.createServer();// 3. 服务器要做的事:提供服务,发送、接收、处理请求,并发送响应
/** server.on注册request请求事件,客户端请求时会自动触发服务器的request请求事件;回调函数对请求进行处理,参数介绍:req提供了请求的详细信息。通过它可以访问请求头和请求的数据.res用于构造要返回给客户端的数据。
*/

server.on("request", function (req, res) {// 这里的回调事件根据需要编写即可,这里给出简单示例// 3.1 收到请求时,打印请求的路径console.log(`收到客户端的请求了,请求路径是${req.url}`);// 3.2 设置响应头中的Content-Type为plain普通文本模式,否则中文无法正常展示res.setHeader("Content-Type", "text/plain; charset=utf-8");let url = req.url;// 3.3 根据不同的url展示不同内容if (url == "/") {// res.write--在页面内写入内容 res.write("首页");} else if (url == "/login") {res.write("登录");}
});
// 4.绑定端口号;
server.listen(3000, function () {console.log("服务器启动成功,可以通过http:127.0.0.1:3000/来进行访问");
});

启动服务器


  • 打开终端

    • 找到文件保存的地址,打开cmd小黑窗,输入node http.js,回车

      (1)找到文件路径

      在这里插入图片描述

      (2)点击路径,输入cmd,回车

      在这里插入图片描述
      (3)cmd窗口打开到了指定路径,输入node http.js。此时,服务就已经启动了,不要关闭小黑窗,否则服务会被关闭。

      在这里插入图片描述

      (4)在浏览器中输入http:127.0.0.1:3000即可访问

      在这里插入图片描述

      (5)此时,也可以看到服务器接收请求打印出的内容

      在这里插入图片描述


推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
author-avatar
天天写程序
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有