位置: 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的简介)

  • 展会策划的几点心得(展览会策划的核心内容)

    展会策划的几点心得(展览会策划的核心内容)

  • word只读模式怎么取消(word只读模式怎么打印)

    word只读模式怎么取消(word只读模式怎么打印)

  • 华为p40的屏幕刷新率是60hz吗(华为p40屏幕刷新率在哪设置)

    华为p40的屏幕刷新率是60hz吗(华为p40屏幕刷新率在哪设置)

  • surface键盘没反应 灯不亮(surface键盘没反应 灯不亮win10)

    surface键盘没反应 灯不亮(surface键盘没反应 灯不亮win10)

  • 苹果11连拍模式怎么打开(苹果11连拍模式设置)

    苹果11连拍模式怎么打开(苹果11连拍模式设置)

  • nova3和3i钢化膜通用不(nova3i和哪个手机膜通用)

    nova3和3i钢化膜通用不(nova3i和哪个手机膜通用)

  • 腾讯课堂不小心退出会不会有上课记录(腾讯课堂不小心退出再进去)

    腾讯课堂不小心退出会不会有上课记录(腾讯课堂不小心退出再进去)

  • 苹果x卡住了强制关机不了(iphone x卡住了)

    苹果x卡住了强制关机不了(iphone x卡住了)

  • 华为手机忘了密码怎么解(华为手机忘了密码怎么解锁)

    华为手机忘了密码怎么解(华为手机忘了密码怎么解锁)

  • 支付宝注销后实名认证还在吗(支付宝注销后实名制也注销了吗)

    支付宝注销后实名认证还在吗(支付宝注销后实名制也注销了吗)

  • mate30语音唤醒词怎么修改(mate30语音助手唤醒词怎么修改)

    mate30语音唤醒词怎么修改(mate30语音助手唤醒词怎么修改)

  • 淘宝店铺被扣12分以后还能开起来吗(淘宝店铺被扣12分怎么办,有什么方法补偿)

    淘宝店铺被扣12分以后还能开起来吗(淘宝店铺被扣12分怎么办,有什么方法补偿)

  • 星光级摄像机什么意思(星光级摄像机什么牌子好)

    星光级摄像机什么意思(星光级摄像机什么牌子好)

  • 图片居中怎么设置(图片居中怎么设置PPT)

    图片居中怎么设置(图片居中怎么设置PPT)

  • 抖音怎么删自己视频(抖音怎么删自己给别人的评论的图片)

    抖音怎么删自己视频(抖音怎么删自己给别人的评论的图片)

  • 拼多多在哪儿邀请新人(拼多多如何邀人)

    拼多多在哪儿邀请新人(拼多多如何邀人)

  • 抖音没有播放量怎么办(抖音没有播放量怎么养号)

    抖音没有播放量怎么办(抖音没有播放量怎么养号)

  • 荣耀play3配置(荣耀play3配置怎么样)

    荣耀play3配置(荣耀play3配置怎么样)

  • 无线网有信号为什么不能用(无线网有信号为什么不能上网)

    无线网有信号为什么不能用(无线网有信号为什么不能上网)

  • 怎么删除自动回复(怎么删除自动回复的内容)

    怎么删除自动回复(怎么删除自动回复的内容)

  • 手机号暂停服务是怎么回事(手机号暂停服务多久才会注销)

    手机号暂停服务是怎么回事(手机号暂停服务多久才会注销)

  • 浅谈VMD---变分模态分解(变分模态分解gnss)

    浅谈VMD---变分模态分解(变分模态分解gnss)

  • 土地增值税扣除成本
  • 建筑公司收到预付款怎么开票
  • 公益性捐赠税前扣除资格有效期
  • 转让费和押金的区别
  • 以前年度损益调整账务处理分录
  • 生产型企业直接进口产品是否可直接出口
  • 个体工商户报税一年几次
  • 其他权益工具和交易性金融资产
  • 库存现金和银行存款的区别
  • 投入的流动资金函怎么写
  • 加工生产产品的地方 用两个字形容
  • 工会经费有关的增值税能否抵扣?
  • 事业单位自用的房产
  • 装修费算固定资产吗?
  • 企业的其他业务成本包括什么
  • 用苹果macbook pro怎样
  • 捷波主板141m
  • 如何实现php图片打印
  • 公司收到个人入股股金,然后又投资其他公司怎么做账
  • 公司与个人的往来款怎么处理
  • 股份支付的成本费用可否税前扣除?
  • 土地增值税可以扣除的税金
  • 企业租地建厂流程
  • 跨境电商需要缴纳哪些税种
  • 工程质保金如何做账
  • php字符串比较大小
  • 高新技术企业补助需要交所得税吗
  • 工会经费免征三年的文件山东
  • 个体工商户使用个人二维码收款违法吗
  • 微信小程序如何删除
  • labview oop
  • 【机器学习】9种回归算法及实例总结,建议学习收藏
  • node.js的安装和配置
  • discuz隐藏查看
  • phpcms使用教程
  • 未形成无形资产计入当期损益的
  • 财政总预算会计的主体是
  • python中strftime用法
  • 帝国cms模板怎么样用
  • 改签费可以进项转出吗
  • 投资性房地产的后续计量
  • 出差的招待费算差旅费
  • 固定资产减值准备可以转回吗
  • 电脑入账如何做凭证
  • 大货车怎样申请报废
  • 公司名下的车怎样领免检标志
  • 旅行社开具的发票抵扣
  • 补缴以前年度所得税怎么做会计分录
  • 增值税一般纳税人资格登记表
  • 收到红字发票如何申报增值税?
  • 周转材料计入现金流量表
  • 转账手续费没有发票能税前扣除吗
  • 主营业务利润率反映了企业的什么能力
  • 预缴增值税及附加可以在电子税务局申报吗
  • 主营业务成本工资计提吗
  • 服务咨询类合同
  • 农业企业纳税申报
  • mysql 5.7.11 winx64安装配置方法图文教程
  • sql server 数据库介绍
  • sql server中一个数据库可以有多个文件组
  • mysql缩印
  • mysql sql语句性能调优
  • mysql免安装版本
  • win10电脑无权限访问文件怎么解除
  • 默认终端地址
  • WebProxy.exe - WebProxy是什么进程
  • win10系统最新版用户维护在哪
  • win10系统资源管理器怎么重新安装
  • win7纯净版系统多大
  • 注册表没有windows nt
  • win7怎么修改开机启动
  • jquery中的选择器有哪些
  • javascript函数的定义
  • python基础教程视频教程
  • js实现功能
  • js 数组处理
  • 三水水厂热线电话号码
  • 吉林市无犯罪记录证明网上申请流程
  • 个人经营所得申报时间
  • 江西税务登记证查询官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设