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

  • 华为手机闪光灯怎么关(华为手机闪光灯怎么打开)

    华为手机闪光灯怎么关(华为手机闪光灯怎么打开)

  • oppoa93充电器多少瓦(oppoa93充电器多少瓦66瓦可以用吗)

    oppoa93充电器多少瓦(oppoa93充电器多少瓦66瓦可以用吗)

  • adobe bridge干什么的

    adobe bridge干什么的

  • 手机丢了如何定位(手机丢了如何定位手机号所在位置)

    手机丢了如何定位(手机丢了如何定位手机号所在位置)

  • 苹果微信怎么置顶好友(苹果微信怎么置顶公众号)

    苹果微信怎么置顶好友(苹果微信怎么置顶公众号)

  • 美团众包拒单多久恢复(美团众包拒单多少封号)

    美团众包拒单多久恢复(美团众包拒单多少封号)

  • 草料二维码怎样制作二维码里面的内容(草料二维码怎样直接用微信打开)

    草料二维码怎样制作二维码里面的内容(草料二维码怎样直接用微信打开)

  • 苹果x和11区别(苹果x和11一样吗)

    苹果x和11区别(苹果x和11一样吗)

  • P30越来越卡了怎么回事(华为p30越来越卡了)

    P30越来越卡了怎么回事(华为p30越来越卡了)

  • jmm-tl10什么型号(jmm_al10什么机型)

    jmm-tl10什么型号(jmm_al10什么机型)

  • 三星s8安全模式怎么手动关闭(三星s8安全模式解除不了怎么办)

    三星s8安全模式怎么手动关闭(三星s8安全模式解除不了怎么办)

  • 苹果有分屏功能吗(苹果有分屏功能吗怎么用)

    苹果有分屏功能吗(苹果有分屏功能吗怎么用)

  • 拼多多好友申请是自动的吗(拼多多好友申请已失效是什么意思)

    拼多多好友申请是自动的吗(拼多多好友申请已失效是什么意思)

  • htc是什么(htc叫什么)

    htc是什么(htc叫什么)

  • 快手怎么关闭直播权限(快手怎么关闭直播)

    快手怎么关闭直播权限(快手怎么关闭直播)

  • 屏蔽电话后打听到的是什么(屏蔽了打电话有反应吗)

    屏蔽电话后打听到的是什么(屏蔽了打电话有反应吗)

  • 华为蓝牙耳机freebuds3怎么关机(华为蓝牙耳机freebudspro2)

    华为蓝牙耳机freebuds3怎么关机(华为蓝牙耳机freebudspro2)

  • 闲鱼付款后卖家不卖了(闲鱼付款后卖家删除宝贝)

    闲鱼付款后卖家不卖了(闲鱼付款后卖家删除宝贝)

  • 苹果11代有防水功能吗(苹果11防水ma)

    苹果11代有防水功能吗(苹果11防水ma)

  • 为什么excel表格下面的栏不显示了(为什么excel表格打印只打印出一半)

    为什么excel表格下面的栏不显示了(为什么excel表格打印只打印出一半)

  • 手机浏览器怎么卸载(手机浏览器怎么恢复以前的浏览记录)

    手机浏览器怎么卸载(手机浏览器怎么恢复以前的浏览记录)

  • iPhone11pro怎么开启来电闪光灯(iphone11pro怎么开空调)

    iPhone11pro怎么开启来电闪光灯(iphone11pro怎么开空调)

  • 微信上怎么看行动轨迹(微信上怎么看行动轨迹图)

    微信上怎么看行动轨迹(微信上怎么看行动轨迹图)

  • airpods触碰点在哪(airpods 触点)

    airpods触碰点在哪(airpods 触点)

  • 微信读书书币能干嘛(微信读书书币能提现吗)

    微信读书书币能干嘛(微信读书书币能提现吗)

  • 股东会的特别决议事项包括
  • 企业跨区变更地址需要多久
  • 网吧是否征收文物保护费
  • 填专项扣除对个人还是公司受益
  • 物业公司停车费按什么征税
  • 税后平均投资利息怎么算
  • 其他应收款利息收入会计分录怎么写
  • 机动车检测公司上班时间
  • 施工企业所得税税率是多少
  • 收付转凭证如何排序装订
  • 核定和查账区别
  • 企业取得的财政补贴收入是否缴纳增值税
  • 预付房租收到发票后如何做账
  • 理财产品增值税纳税人
  • 耕地占用税和土地使用税的区别
  • 什么是简易征收办法征收增值税
  • 固定资产合并抵扣增值税
  • 赔偿给客户的钱抵扣货款的会计分录
  • 认缴制度下实收资本确认条件
  • 境外代扣代缴所得税
  • 苹果mac怎么禁止百度搜索
  • 鸿蒙怎么开启个性化桌面
  • 鸿蒙系统桌面布局图片怎么设置
  • kjournald是什么进程
  • 鸿蒙系统通知栏界面怎么打开
  • PHP:pg_unescape_bytea()的用法_PostgreSQL函数
  • 未分配收益怎么取出
  • 餐饮行业采购
  • 小程序常见问题
  • yii2关联查询
  • 纳税人销售免税货物
  • 应收票据年末计息的分录
  • php处理xml数据
  • php引用文件的方法
  • vue图片点击放大
  • 长期待摊费用的摊销方法
  • vue router 路由参数
  • 登录界面html5
  • logparser命令
  • 增值税减免怎么填写
  • 账面价值账面余额摊余成本
  • 租赁房屋开具发票商品名称
  • 查询公司对公账户
  • 融资租赁视同销售吗
  • 损益表填制
  • 开票显示税收分录怎么办
  • day12-Servlet02
  • 简述记账后的凭证修改方法
  • 印花税怎么计提记账
  • 财务预算资产负债表如何编制
  • 专项扣除三险一金是哪三险
  • 网上申报纳税注销流程
  • 个税系统中的离职怎么填
  • 一般劳务报酬个人所得税退税吗
  • 银行开户费属于现金流量表的哪一类
  • 政府补助属于不征税金吗
  • 服务业的收入确认原则
  • 开票金额大于收入增值税申报表填写
  • 电子商务中流量的定义
  • 退款产生的手续费怎么算
  • 母公司与子公司税务关系
  • 企业收付实现制还是权责发生制
  • win10预览版21277
  • win8怎么打开光驱
  • win7系统快捷键关机
  • windows 2000.
  • linux 挂载img
  • nw.exe是什么进程
  • windowsp.exe - windowsp是什么进程
  • win10拦截在哪里关
  • linux忘了root密码
  • windows7 游戏
  • 每天学一个成语
  • css 3
  • android observer
  • 浅谈幼儿良好行为的培养论文
  • python for循环删除元素
  • 小微企业契税政策
  • 西安车辆购置税在线交费
  • 辽宁网上税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设