位置: IT常识 - 正文

Node.js——http模块和导出共享

编辑:rootadmin
Node.js——http模块和导出共享

推荐整理分享Node.js——http模块和导出共享,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

个人简介

👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿 offer(秋招) 🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js 🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

Node.js系列文章目录内容参考链接Node.js(一)初识 Node.jsNode.js(二)Node.js——文件模块和路径模块文章目录Node.js系列文章目录一、http 模块1、创建 web 服务器2、req 请求对象3、res 响应对象4、解决中文乱码问题5、根据不同的 url 响应不同的 html 内容二、Node.js 中的模块分类1、三大模块分类2、模块作用域3、module.exports 对象4、共享成员时的注意点5、exports 和 module.exports一、http 模块

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。

通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 web 服务器,从而对外提供 web 资源服务。

1、创建 web 服务器导入 http 模块创建 web 服务器实例为服务器实例绑定 request 事件,监听客户端的请求启动服务器

示例:监听 8080 服务

// 导入 http 模块const http = require('http')// 创建 web 服务器实例const server = http.createServer()// 为服务器实例绑定 request 事件 监听客户端的请求server.on('request', function (req, res) { console.log('请求中...')})// 启动服务server.listen(8080, function () { console.log('http://127.0.0.1:8080')})

2、req 请求对象

只要服务器接收到了客户端的请求,就会调用通过 server.on() 为服务器绑定的 request 事件处理函数

示例:在事件处理函数中,访问与客户端相关的数据或属性

// 导入 http 模块const http = require('http')// 创建 web 服务器实例const server = http.createServer()// req 是请求对象 包含了与客户端相关的数据和属性server.on('request', (req) => { // req.url 客户端请求的 url 地址 const url = req.url // req.method 是客户端请求的 method 类型 const method = req.method const str = `Your request url is ${url} and request method is ${method}` console.log(str)})// 启动服务server.listen(8080, function () { console.log('http://127.0.0.1:8080')})

3、res 响应对象

在服务器的 request 事件处理函数中,如果想访问与服务器相关的数据或属性,需要使用 response

示例:请求响应

// 导入 http 模块const http = require('http')// 创建 web 服务器实例const server = http.createServer()// req 是请求对象 包含了与客户端相关的数据和属性server.on('request', (req, res) => { // req.url 客户端请求的 url 地址 const url = req.url // req.method 是客户端请求的 method 类型 const method = req.method const str = `Your request url is ${url} and request method is ${method}` console.log(str) // 调用 res.end() 方法 向客户端响应一些内容 res.end(str)})// 启动服务server.listen(8080, function () { console.log('http://127.0.0.1:8080')})

4、解决中文乱码问题

当调用 res.end() 方法,向客户端发送中文内容时,会出现乱码问题,需要手动设置内容的编码格式

示例:解决中文乱码

// 导入 http 模块const http = require('http')// 创建 web 服务器实例const server = http.createServer()// req 是请求对象 包含了与客户端相关的数据和属性server.on('request', (req, res) => { // req.url 客户端请求的 url 地址 const url = req.url // req.method 是客户端请求的 method 类型 const method = req.method const str = `请求地址是 ${url} 请求方法是 ${method}` console.log(str) // 设置 Content-Type 响应头 解决中文乱码问题 res.setHeader('Content-Type', 'text/html; charset=utf-8') // 调用 res.end() 方法 向客户端响应一些内容 res.end(str)})// 启动服务server.listen(8080, function () { console.log('http://127.0.0.1:8080')})

5、根据不同的 url 响应不同的 html 内容

示例:步骤如下

获取请求的 url 地址设置默认的响应内容为 404 Not found判断用户请求的是否为 / 或 /index.html 首页判断用户请求的是否为 /about.html 关于页面设置 Content-Type 响应头,防止中文乱码使用 res.end() 把内容响应给客户端// 导入 http 模块const http = require('http')// 创建 web 服务器实例const server = http.createServer()// req 是请求对象 包含了与客户端相关的数据和属性server.on('request', (req, res) => { // req.url 客户端请求的 url 地址 const url = req.url // 设置默认的内容为 404 Not Found let content = '<h1>404 Not Found!</h1>' // 用户请求页是首页 if(url === '/' || url === '/index.html') { content = '<h1>首页</h1>' } else if (url === '/about.html') { content = '<h1>关于页面</h1>' } // 设置 Content-Type 响应头 防止中文乱码 res.setHeader('Content-Type', 'text/html; charset=utf-8') // 调用 res.end() 方法 向客户端响应一些内容 res.end(content)})// 启动服务server.listen(8080, function () { console.log('http://127.0.0.1:8080')})

二、Node.js 中的模块分类1、三大模块分类内置模块:由 node.js 官方提供的,如 fs、path、http 等自定义模块:用户创建的每个 .js 文件,都是自定义模块第三方模块:由第三方开发出来的模块,使用前要先下载2、模块作用域

防止了全局变量污染的问题

示例:

index.js 文件

const username = '张三'function say() { console.log(username);}Node.js——http模块和导出共享

test.js 文件

const custom = require('./index')console.log(custom)

3、module.exports 对象

在自定义模块中,可以使用 module.exports 对象,将模块内的成员共享出去,供外界使用。

外界 require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象

示例:

index.js 文件

const blog = '前端杂货铺'// 向 module.exports 对象上挂载属性module.exports.username = '李四'// 向 module.exports 对象上挂载方法module.exports.sayHello = function () { console.log('Hello!')}module.exports.blog = blog

test.js 文件

const m = require('./index')console.log(m)

4、共享成员时的注意点

使用 require() 方法导入模块时,导入的结果,永远以 module.exports 指向的对象为准

示例:

index.js 文件

module.exports.username = '李四'module.exports.sayHello = function () { console.log('Hello!')}// 让 module.exports 指向一个新对象module.exports = { nickname: '张三', sayHi() { console.log('Hi!') }}

test.js 文件

const m = require('./index')console.log(m)

5、exports 和 module.exports

默认情况下,exports 和 module.exports 指向同一个对象。

最终共享的结果,还是以 module.exports 指向的对象为准。

示例:

index1.js 文件

exports.username = '杂货铺'module.exports = { name: '前端杂货铺', age: 21}

index2.js 文件

module.exports.username = 'zs'exports = { gender: '男', age: 22}

index3.js 文件

exports.username = '杂货铺'module.exports.age = 21

index4.js 文件

exports = { gender: '男', age: 21}module.exports = exportsmodule.exports.username = 'zs'

对 index2.js 文件结果的解析如下:

对 index4.js 文件结果的解析如下: 注意:为防止混乱,尽量不要在同一个模块中同时使用 exports 和 module.exports

本文链接地址:https://www.jiuchutong.com/zhishi/299596.html 转载请保留说明!

上一篇:关系代数(关系代数的五个基本操作)(关系代数关系运算)

下一篇:【Vue】Vue简介、引入、命令式和声明式编程(vue的简介)

  • 华为荣耀20录屏可以录多久(华为荣耀20录屏没有声音怎么办)

    华为荣耀20录屏可以录多久(华为荣耀20录屏没有声音怎么办)

  • 荣耀9x有息屏时钟吗(荣耀9x手机息屏时间设置)

    荣耀9x有息屏时钟吗(荣耀9x手机息屏时间设置)

  • 滴滴一个1星降多少分(滴滴一个1星影响大吗)

    滴滴一个1星降多少分(滴滴一个1星影响大吗)

  • 大疆mavic2遥控器借口是平口怎么充电

    大疆mavic2遥控器借口是平口怎么充电

  • 在word中字体格式化是什么(在word中字体格式化的设置包括什么)

    在word中字体格式化是什么(在word中字体格式化的设置包括什么)

  • 中国接入互联网时间(中国接入互联网的意义)

    中国接入互联网时间(中国接入互联网的意义)

  • 通过抖音号能查到微博吗(通过抖音号能查到手机号码吗)

    通过抖音号能查到微博吗(通过抖音号能查到手机号码吗)

  • 钉钉看直播分屏老师知道吗

    钉钉看直播分屏老师知道吗

  • 字幕与隐藏式字幕有什么用(字幕与隐藏式字幕怎么用)

    字幕与隐藏式字幕有什么用(字幕与隐藏式字幕怎么用)

  • 手机耳机没标左右怎么分(手机耳机左耳机没声音)

    手机耳机没标左右怎么分(手机耳机左耳机没声音)

  • 华为nova7在哪插耳机(华为nova7在哪插耳机孔插上咋还是外音)

    华为nova7在哪插耳机(华为nova7在哪插耳机孔插上咋还是外音)

  • iphone12是5g手机吗(iphone12 是5g)

    iphone12是5g手机吗(iphone12 是5g)

  • 信息传输技术主要有哪些技术(信息传输技术主要是指计算机网络技术)

    信息传输技术主要有哪些技术(信息传输技术主要是指计算机网络技术)

  • 下载的视频为什么S8不显示(下载的视频为什么剪映看不见)

    下载的视频为什么S8不显示(下载的视频为什么剪映看不见)

  • 怎样使用天猫上门取件服务(怎么用天猫买东西)

    怎样使用天猫上门取件服务(怎么用天猫买东西)

  • icp备案收费吗(icp备案需要多久)

    icp备案收费吗(icp备案需要多久)

  • 华为手机实况模式怎么打开(华为手机实况模式怎么用)

    华为手机实况模式怎么打开(华为手机实况模式怎么用)

  • iphonexr应用与数据选哪个(苹果xr手机应用与数据在哪里设置)

    iphonexr应用与数据选哪个(苹果xr手机应用与数据在哪里设置)

  • cad图纸比例怎么算(cad图纸比例怎么看)

    cad图纸比例怎么算(cad图纸比例怎么看)

  • 红米note8pro缺点(红米note8pro有哪些缺点)

    红米note8pro缺点(红米note8pro有哪些缺点)

  • 爱奇艺怎么取消只看片段(爱奇艺怎么取消跳过片头片尾)

    爱奇艺怎么取消只看片段(爱奇艺怎么取消跳过片头片尾)

  • 苹果7p就是plus吗(苹果手机7p是7plus吗)

    苹果7p就是plus吗(苹果手机7p是7plus吗)

  • 华为nova4充电器型号(华为nova4充电器型号对应表)

    华为nova4充电器型号(华为nova4充电器型号对应表)

  • 华为p30微信消息不提示(华为p30微信消息怎么不提示)

    华为p30微信消息不提示(华为p30微信消息怎么不提示)

  • 苹果8p与苹果x的区别(苹果8p和苹果x选哪个)

    苹果8p与苹果x的区别(苹果8p和苹果x选哪个)

  • 为什么微信运动总是显示步数为0(为什么微信运动中有的朋友不显示)

    为什么微信运动总是显示步数为0(为什么微信运动中有的朋友不显示)

  • 鸿蒙系统怎么切换音频输出设备? 鸿蒙更换声音输出设备的技巧(鸿蒙系统怎么切换回安卓)

    鸿蒙系统怎么切换音频输出设备? 鸿蒙更换声音输出设备的技巧(鸿蒙系统怎么切换回安卓)

  • Win11 Build 23430 预览版发布(附更新修复内容汇总)

    Win11 Build 23430 预览版发布(附更新修复内容汇总)

  • 房屋租赁如何开增值税专用发票
  • 小规模计提税金及附加会计分录怎么写
  • 往来票据如何开具
  • 无形资产登记什么明细账
  • 增加经营范围需要重新做税种
  • 捐赠的费用放在什么科目
  • 增值税有留底怎么减少留底
  • 向投资者支付的股息红利等权益性投资收益款项
  • 增值税申报错误如何重报
  • 进项税抵扣销项税怎么做账
  • 当月少计提工资下月怎么处理?
  • 企业自建房产提成多少
  • 应交税金及附加包括哪些
  • 筹建期结转损益吗
  • 超额亏损在合并后怎么算
  • 预收账款核销的流程
  • 怎么合理规范地避免企业涉税风险?
  • 其他应付款怎么理解
  • 保费收入包含
  • 连续3个月增值税留抵
  • 在途物资期末借方
  • 收到上级补助收入支出时财务会计怎么记账
  • 出租设备计提折旧记什么科目
  • 投资款怎么做会计科目
  • 个税申报初始密码一定要去所属税局看吗
  • 招待客人买的烟计入业务招待费吗
  • 公司审计期间
  • 企业资产转移是什么意思
  • 已付款无法收到发票怎么处理
  • 公允价值变动损益借贷方向
  • 公司利润为负数 贷款
  • 预缴增值税会计处理
  • 设备安装用工程造价吗
  • Win10电脑重装系统要多少钱
  • php字符串赋值
  • 付的押金冲抵部分怎么算
  • pop3服务是什么
  • ubuntu20.04安装make
  • 哪些可以作为原始凭证
  • 固定资产非正常中断没超过三个月
  • 寓意幸福和团圆的网名
  • 那慕尔省
  • 蒙大拿州美景
  • 适用执行企业会计准则的一般企业
  • mobilenet模型
  • golang char
  • 发票报销入账
  • 收到投资款怎么做账
  • 个体工商户没有收入要交税吗
  • 购进免税农产品进项税额计算
  • 纳税证明和完税证明的金额为什么不一样
  • mongodb启动命令 linux
  • 缴纳个人所得税有什么好处
  • 什么是电子承诺
  • sql server 查看
  • 典当行借款合同需交印花税吗
  • 收到政府补贴如何入账
  • 一般纳税人销售旧货税率
  • 安装调试费收费标准
  • 商品周转率公式
  • 企业所得税如何计算应纳税所得额
  • 哪些费用是不可抵扣的
  • 工程竣工后发生工程的保修费用入哪个科目?
  • 账务不实与账实不符
  • 分区时把磁盘格式化了,如何恢复
  • xp系统修改文件类型
  • 360杀毒恢复区
  • win10系统mmc不能打开文件
  • win8.1内存占用过高
  • w10消费者版本和专业版区别
  • win8的运行在哪里打开
  • win7如何限制网速
  • win10的显示
  • 每日十条中医用药经验
  • html怎么下
  • jquery常见问题
  • python sco
  • 中央与地方增值税
  • 国家财政税务局
  • 个人租车收入如何缴纳个人所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设