3个步骤就让一个web服务器建立起来(web服务器简单写法)

2023-11-04

第一步 新建一个js文件,文件名自行设置,不建议使用中文和数字.

 内容如下:

// 1. 引入http模块
const http = require('http');

// 2. 创建服务
const server = http.createServer(function(req, res) {
  console.log('有人来访问了')
  res.setHeader('content-type','text/html;charset=utf8')
  // 向客户端发送内容,并结束本次响应
  res.end('hello world');
});
// 3. 启动服务
server.listen(8081, function() {
  console.log('服务器启动成功,请在http://localhost:8081中访问....');
});

第三步:运行js代码。

 第四步:本地验收

打开一个浏览器页面,输入'http://localhost:8081',观察效果:

第五步:共享地址

把localhost改成你自己电脑的ip地址,再把这个路径发你的同事或者朋友,自己亦可(同一个局域网)来访问。

 

 

 在输入ipconfig后 找到ipv4地址  

把自己的地址加上:8081端口 一起发给别人 就可以在局域网内 使用浏览器看到hello word

 当地址被他人访问后,你的node.js 会显示 

 切记哦,在他人看你的服务器时,不要关闭node.js   不然会看不到的~

第六步:停止服务

ctrl + c

解析如下:

  • 引入核心模块,得到的http是一个对象。

  • http.createServer方法创建一个http服务。参数是一个回调函数:当有http请求进来时,它会自动被调用。请求一次,它就被调用一次

    • 第一个参数:req, 客户端的请求

    • 第二个参数:res,设置对本次请求的响应

    • res.setHeader('content-type','text/html;charset=utf8')

      // 设置响应头

      // content-type 是键名。内容类型,

      // text/html;charset=utf8 是值

      // 告诉浏览器内容类型是html,编码格式是utf8

      • res.end() :设置响应体,结束请求。

  • server.listen() 用来监听端口。

    • 格式:server.listen(端口号,[回调函数])。回调是可选的。

    • 说明:

      • 如果监听成功,则回调函数会执行一次。

      • 如果不成功(例如端口被占用),会报错。

修改代码后要重启

更改res.end()的内容,重启后,再次观察。

  • 停止服务: 在小黑窗中按下ctrl+c 停止服务。

  • 重启服务:就是重新运行程序(按下向上的箭头,再回车)。

修改了服务器的代码要重启。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3个步骤就让一个web服务器建立起来(web服务器简单写法) 的相关文章

  • 如果用户禁用了 javascript,如何回退到完全不同的索引页面?

    我有一个大型 动态生成的单页网站 该网站严重依赖 javascript 我想为没有 javascript 的人提供后备 每个版本必须有不同的 php 代码 所以基本上我需要一个完全不同的索引页面 我不想将所有内容都包装在 javascrip
  • 系统js语法错误,IE11

    我有一个 Angular 2 应用程序可以在 Firefox 和 Chrome 中工作 但在 IE 中却没有那么多工作 根据我的堆栈跟踪 我的 System js 设置似乎存在问题 这是我在网络控制台中看到的错误描述 Error Syste
  • 请使用同一按钮播放和暂停音频

    我有这段代码并且只是播放 但我想使用相同的按钮 图像 播放和暂停 并且我不知道我需要添加什么 我需要做什么 请帮帮我
  • jade模板条件类nodejsexpressjs

    我的标题有一个 jade 模板文件 并使用引导标记 根据用户所在的页面 导航栏需要将 active 类添加到该导航项 避免这样的长代码的最佳方法是什么 header jade if nav home li active a href Hom
  • 将 Babel 与单个输出文件和 ES6 模块一起使用

    这是我的 gulp 任务 将 ES6 代码编译成单个 ES5 文件 我使用类和模块 import export 在 ES6 中 gulp src paths scripts pipe sourcemaps init pipe babel p
  • 我以为我了解范围

    有人可以告诉我为什么 x 的最后一次记录等于0而不是1 我想因为它是在函数之外声明的 所以它具有全局范围 然后在函数中它的值设置为1并且该值将保持原样一个全球性的 我知道函数内的第一个 x 值是全局的 因为没有 var 关键字声明的任何变量
  • 未处理的 Promise 拒绝:push.on 不是函数

    我正在使用离子2 我得到这个打字稿error当尝试设置推送通知时 我从教程中复制了此示例代码 因此预计它可以工作 我一定有什么问题 任何想法请 Unhandled Promise rejection push on is not a fun
  • td 内的文本可以随 td 一起调整大小吗? (是其高度的百分比?)

    我有一个 100 占屏幕的表格 里面有 3x3 9 个单元格 每个单元格占 33 到目前为止 一切都很好 这是一个干净 可扩展的井字棋游戏 问题在于 TD 内的文本不会随比例缩放 有没有办法说 我希望文本大小为 TD 高度的 30 或者其他
  • 纯 JavaScript 工具提示

    我正在尝试用纯 JavaScript 制作一个工具提示 显示在hover 就像 Stack Overflow 中将鼠标悬停在个人资料名称 a 上一样div显示 我尝试使用onmouseover onmouseout并添加了setTimeou
  • 将变量从一个 jsp 发送到另一个 jsp

    我有一个 JSP 文件jsp 1 jsp和另一个 JSP 文件jsp 2 jsp 我已经包括了jsp 2 jsp in jsp 1 jsp using 现在我需要某个元素上的单击事件 在该事件中 我想将字符串变量传输到包含的 jsp 中 假
  • 使用预先存在的数据库创建 PhoneGap iOS 应用程序

    我最近开始开发一个使用 PhoneGap 版本 2 8 0 作为药物查找器的应用程序 过去 我创建了该工具的 Web 版本 它使用 jQuery Mobile 和 PHP 来访问远程 SQL 数据库 PhoneGap 似乎是一个很有吸引力的
  • 如何在从数据库异步加载中用占位符替换不存在的图像

    我有一个包含图像的数据库 我需要根据用户的请求即时加载这些图像 这些图像将作为包含 div 容器中的单独 s 的背景图像 类似于图像滚动条 该数据库当前是本地数据库 但这不是我的问题 问题是数据库可能没有我请求的所有图像 并且我可能会得到一
  • Mongoose:ObjectId 比较失败不一致

    我有一个简单的工具 用于构建文档集合 然后自动格式化它们以进行 EPUB 或 LaTeX 渲染 该工具是在 ExpressJS 之上编写的 我正在使用 Coffeescript 如果这很重要的话 我对此表示怀疑 使用猫鼬 我有以下内容 Do
  • 删除移动设备上的 adsense

    我正在研究响应式设计 但在使用 adsense 时遇到了问题 我有一个广告应该显示在桌面设计上 但不能显示在移动设计上 因此 只有在桌面上查看网站时 才应将广告代码放置在 html 中 css 可以使用 display none 但这违反了
  • 在 PATH 上找不到运行时“节点” - Visual Studio Code 和 Node.js

    下载并安装了 Visual Studio Code 1 2 1 版本 并将 64 位版本的 node exe msi 放置在我的工作目录中 我假设这是正确的 我们如何添加节点和 npm 命令行工具我们的路径 我对这种说法的理解感到困惑 我们
  • 离子选择:预选值在单击一次之前是不可见的

    我刚刚在 ionic 版本 6 中创建了一个 ion select 我的问题是 我在页面加载时已成功预选了一个值 但此预选值未显示在 UI 中 它只是在我单击选择之后出现 但在它没有出现之前 如图 2 所示 我在 ionViewWillEn
  • Node.js 和 npm phoenix-client 包与 Kerberized Apache phoenix 的连接

    我正在尝试将 Kerberized Apache phoenix 与 node js 上的 npm jdbc 包连接起来 kerberized apache phoenix 的 node js 和 npm jdbc 包问题 https st
  • 如何防止外部 CSS 添加和覆盖 ReactJS 组件样式

    我有一个自定义的 ReactJS 组件 我想以某种方式设置样式 并将其作为插件提供给许多不同的网站 但是 当网站使用全局样式 Twitter bootstrap 或其他 css 框架 时 它会添加并覆盖我的组件的样式 例如 全局 css l
  • 如何将 JSLint 用于依赖于 JQuery 的代码段?

    我对 Javascript 比较陌生 我想通过 JSLint 运行我周末玩的那段代码 这样它就可以指出我在哪里是个十足的白痴 不幸的是 我收到了大量关于缺少函数声明的错误 这些函数声明是 JQuery javascript 库及其各种插件的
  • 将画布下载为 PNG 图像[重复]

    这个问题在这里已经有答案了 当我尝试将画布下载为 PNG 图像时 浏览器会在新页面中打开该图像 但不下载它 我的下载代码 btnScaricaEtichetta click function console log Download loc

随机推荐

  • OpenCV中的尺度不变特征变换(SIFT Scale-Invariant Feature Transform)

    OpenCV中的尺度不变特征变换 SIFT Scale Invariant Feature Transform 1 效果图 2 原理 2 1 步骤 2 2 opencv实现方法 2 3 SIFT算法获取 3 源码 参考 这篇博客将介绍尺度不
  • Android Kotlin 文件工具类 - 沙盒内文件和图像的读写和删除

    Kotlin 文件工具类 沙盒内文件和图像的读写和删除 Context 使用 应用全局上下文 ApplicationContext 在示例代码中为顶层属性 appContext 获取 应用全局上下文 ApplicationContext 的
  • cuda

    CUDA Error unspecified launch failure workstation workstation HP Z840 Workstation mjf darknet darknet detector train cfg
  • 深度医疗(1) - 基于深度学习心电图(ECG)特征识别

    深度医疗是笔者基于深度学习的医学项目应用开发实践 经过整理输出了文档和本系列课程 希望通过分享可以和大家共同讨论 相互学习 探索更好的解决方案 笔者是一名普通的大数据和人工智能领域从业者 过程中如有错误和理解不到位的地方请广大同仁不吝赐教
  • 两个ajax 循环,多个AJAX PHP请求与每个循环

    我有这样的代码 它后来一些如果querys和这个作品完美 第一个Ajax请求也很好 但在每个循环之后第二个请求不会被执行 Idk为什么 希望有人有解决方案 多个AJAX PHP请求与每个循环 alert success Everything
  • SAP创建采购申请 报错MEPO082

    原因是系统标准功能要求手工创建PR需要有评估价格 将此字段屏幕格式设置为显示可避免此问题
  • Nreal light AR 眼镜开发-Unity发布安卓to眼镜的player setting

    地址导航 Quickstart for Android NRSDK 后续教程继续跟踪
  • linux 找u盘,linux系统怎样找到U盘?

    linux系统怎样找到U盘 精选 更新时间 2019 10 27 00 12 最满意答案 1 用FDISK l 来找 一般U盘会被LINUX认为SCSI设备 如果有SCSI设备那么U盘一般是最后一个SCSI设备 如果没有SCSI设备 一般s
  • 2.2Qt布局控件

    2 2Qt布局控件 文章目录 2 2Qt布局控件 一 为什么需要布局控件 二 基本布局控件 1 利用控件组进行布局 2 利用快捷方式进行布局 总结 提示 以下是本篇文章正文内容 下面案例可供参考 一 为什么需要布局控件 图形页面程序会直接影
  • 链表基础增删改查操作代码

    链表基础操作 增删改查 代码 package com mia linkedlist import javafx beans property SimpleListProperty import java text SimpleDateFor
  • NLP中embedding

    NLP中embedding https mp weixin qq com s 5ttCIFPVA0 7O67DvI6HKA https www zhihu com question 510987022 一 获取目标对象表征 如果有人问我 你
  • tp5.0 api 接口设计语言包切换功能

    tp5 0 lang 使用 header 传参 语言包没有调用 一 设置语言切换配置 参考文档 https www kancloud cn manual thinkphp5 118132 找到你config设置文件 进行设置 二 设置对应语
  • 网站防御cdn和高防服务器,高防IP和高防CDN哪个防护更好?

    现在网络攻击越来越多 而且有越来越凶猛的趋势 为了保障服务器的安全性和稳定性 不少企业和站长都选了高防服务器 虽然防御提升了 但是攻击依旧是无法避免的 如果使用了高防服务器之后 还不能很好的防御 又不想更换防御更高的高防服务器 不妨可以添加
  • 解决ARM-Compiler ‘Default Compiler Version 5‘ which is not available

    新版MDK不再自带ARM Compiler version 5编译器 如果编辑之前的工程会提示 ARM Compiler Default Compiler Version 5 which is not available 错误 需要手动安装
  • JAR包在CenOS启动成功却打不开项目

    开始看防火墙 service iptables status 提示 Redirecting to bin systemctl status iptables service Unit iptables service could not b
  • RJ45网口灯的含义及当前问题描述

    当前使用的网口是10M 100M的 上有两个灯 绿色和黄色灯 绿色灯状态表示的是网口的连接状态 如果绿色灯常亮表明的是网口处于正常连接状态 黄色灯闪烁代表数据传输 常见的异常 两个灯都不亮 网口未连接成功 两个灯都亮 且常亮 但是数据不通
  • docker入门,这一篇就够了。

    Docker入门 这一篇就够了 Docker容器虚拟化平台 前言 接触docker很长时间了 但是工作中也没有用到 所以总是学了忘 忘了学 不过这次 我打算跟大家分享一下我的学习历程 也算是我的独特的复习笔记 我会在这一篇中讲清楚docke
  • Unity播放视频(一) VideoPlayer的使用

    1 在UI上添加脚本 添加UITexture脚本 用于显示视频 添加VideoPlayer 2 上代码 VideoPlayer m Video UITexture m Texture void Start m Video started O
  • 利用html设置嵌套式表格,表格嵌套 HTML

    嵌套表格就是在一个大的表格中 再嵌进去一个或几个小的表格 即插入到表格单元格中的表格 如果用一个表格布局页面 并希望用另一个表格组织信息 则可以插入一个嵌套表格 表格的嵌套一方面是为使页面的外观更为漂亮 利用表格嵌套来编辑出复杂而精美的效果
  • 3个步骤就让一个web服务器建立起来(web服务器简单写法)

    第一步 新建一个js文件 文件名自行设置 不建议使用中文和数字 内容如下 1 引入http模块 const http require http 2 创建服务 const server http createServer function r