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

  • 微信怎么加群找群(在微信怎么找群聊)

    微信怎么加群找群(在微信怎么找群聊)

  • 为什么录像拍出来的是反的(为什么录像拍出来脸很歪)

    为什么录像拍出来的是反的(为什么录像拍出来脸很歪)

  • 华为怎么切换另一个系统(华为怎么切换另一个微信)

    华为怎么切换另一个系统(华为怎么切换另一个微信)

  • flash路径动画(flash路径动画的基本制作方法)

    flash路径动画(flash路径动画的基本制作方法)

  • 安卓怎么使用苹果手表(安卓怎么使用苹果主题)

    安卓怎么使用苹果手表(安卓怎么使用苹果主题)

  • 1.5ghz八核处理器是骁龙多少(1.5ghz八核处理器能玩原神吗)

    1.5ghz八核处理器是骁龙多少(1.5ghz八核处理器能玩原神吗)

  • 苹果11可以单独换外屏吗(苹果11可以单独设置闹钟音量吗)

    苹果11可以单独换外屏吗(苹果11可以单独设置闹钟音量吗)

  • 小米重启到recovery模式是什么意思(小米重启到recovery可以降级系统吗)

    小米重启到recovery模式是什么意思(小米重启到recovery可以降级系统吗)

  • 笔记本能外接摄像头吗(笔记本能外接摄像头嘛)

    笔记本能外接摄像头吗(笔记本能外接摄像头嘛)

  • 手机卡能识别但是无信号(手机卡能识别但是没信号怎么回事 苹果)

    手机卡能识别但是无信号(手机卡能识别但是没信号怎么回事 苹果)

  • 华为手机充电慢了怎么解决(华为手机充电慢怎么办 解决)

    华为手机充电慢了怎么解决(华为手机充电慢怎么办 解决)

  • 小米mct3b是什么型号(小米mct3b参数)

    小米mct3b是什么型号(小米mct3b参数)

  • i5760是几代(i5 760相当于i3几代)

    i5760是几代(i5 760相当于i3几代)

  • 企鹅电竞可以改名字吗(企鹅电竞改成什么了)

    企鹅电竞可以改名字吗(企鹅电竞改成什么了)

  • 网页的工作原理是什么(网页的工作原理有哪些)

    网页的工作原理是什么(网页的工作原理有哪些)

  • 小米cc9美图定制版什么时候上市的(小米cc9美图定制版和小米cc9手机壳通用吗)

    小米cc9美图定制版什么时候上市的(小米cc9美图定制版和小米cc9手机壳通用吗)

  • 显卡驱动日期代表什么(显卡 驱动日期)

    显卡驱动日期代表什么(显卡 驱动日期)

  • 手机卡可以异地注销吗(手机卡可以异地补卡办理吗)

    手机卡可以异地注销吗(手机卡可以异地补卡办理吗)

  • 怎么知道火山被拉黑了(怎么知道火山被盗了没有)

    怎么知道火山被拉黑了(怎么知道火山被盗了没有)

  • ipad如何投屏到电视(ipad如何投屏到mac)

    ipad如何投屏到电视(ipad如何投屏到mac)

  • oppoa37有红外线功能吗(oppoa37红外线在哪里打开)

    oppoa37有红外线功能吗(oppoa37红外线在哪里打开)

  • 全民k歌怎么设置不让陌生人访问(全民k歌怎么设置耳返功能)

    全民k歌怎么设置不让陌生人访问(全民k歌怎么设置耳返功能)

  • React面试题最全

    React面试题最全

  • xauth命令  管理X服务器的访问授权(命令行怎么管理员运行)

    xauth命令 管理X服务器的访问授权(命令行怎么管理员运行)

  • 增值税进项发票当月未开,怎么办
  • 土地增值税应纳税额如何计算
  • 先开票后收款违法吗
  • 工业企业取得土地收益
  • 固定资产账务处理实操
  • 备用金要用发票做账吗
  • 劳务报酬怎么申报记账凭证
  • 怎么把预付账款转到管理费用
  • 哪些发票能做公章
  • 收到租赁费发票的账务处理
  • 产权转移书据印花税分录
  • 金税维护费申报表
  • 实收资本认缴制期限
  • 教育服务增值税纳税义务发生时间
  • 企业汇算清缴补税原因
  • 房地产企业预缴企业所得税怎么算
  • 增值税已交税金什么情况下使用
  • 交防伪税控技术怎么交
  • 资本资产定价模型
  • 库存周转天数计算实例
  • 投资基金是什么科目
  • windows11快捷操作
  • 总资产净利率和权益乘数之间的关系
  • 应付账款和应收票据区别
  • 专用发票和普通发票的报销区别
  • cpu资源占用高怎么办
  • 个人独资企业公账转私账
  • phpexplode函数
  • 房地产开发企业分为几个等级
  • 客户申请退款商家拒绝退货退款会有什么效果
  • fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
  • phpstorm怎么用
  • 应酬用的香烟
  • 基础知识讲解
  • 财行〔2019〕11号代扣代缴手续费的解读
  • /etc/php-fpm.d/www.conf 配置注意事项
  • php操作mysql数据库
  • 老老实实的人
  • yii2框架和fastadmin建商城网站哪个好用
  • 餐饮固定成本怎么算的
  • 投标保证金退还时间是在什么文件的规定的
  • wordpress建立数据库失败
  • 图片加载不存在
  • 已缴款未入库是缴费成功了吗
  • 应收账款收不回来做坏账处理分录
  • 建筑企业预缴的增值税怎么抵扣
  • 企业内部控制的概念
  • access数据库如何
  • 销售折扣购物卡对公司财务的好处
  • 物业费没收到可以确认收入吗
  • 残疾人就业保障金是什么意思啊
  • 电子增值税发票样本
  • 公司变更名字后,公账怎么办
  • 存货账面价值入哪个科目
  • 销售费用和管理费用的税前扣除
  • 试运行收入冲减哪个项目
  • 公司购买电缆线怎么做账
  • 无法进入睡眠状态
  • 快速释放剪贴蒙版快捷键
  • Linux x86_64下安装Flash Player 9
  • xp系统怎么修改图标和文字大小
  • windows7开始菜单不见了
  • os x10.10.3beta5官网下载 yosemite10.10.3beta5下载地址
  • win10更新后浏览器打不开网页
  • linux如何安装wget命令
  • windows7开始菜单
  • Android使用领域
  • js组件是什么
  • 怎么在html中调用js的函数
  • python os.access
  • angular scope
  • bootstrap基础
  • nodejs搭建本地资源服务器
  • js 进阶
  • jquery实例
  • 公司在异地办公
  • 建筑工程施工企业资质
  • 宁夏电子税务局官网登录入口首页
  • 白酒的消费税怎么算计算列题
  • 企微宝破解
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设