热门标签 | 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)此时,也可以看到服务器接收请求打印出的内容

      在这里插入图片描述


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
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社区 版权所有