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

  • mi 11 lite是什么型号

    mi 11 lite是什么型号

  • ppt如何不让别人修改只能看(ppt如何不让别人看到备注)

    ppt如何不让别人修改只能看(ppt如何不让别人看到备注)

  • 华为nova7防水等级是多少(华为nova7防水等级)

    华为nova7防水等级是多少(华为nova7防水等级)

  • iphone怎么弄自定义动态锁屏(苹果手机自定义怎么设置)

    iphone怎么弄自定义动态锁屏(苹果手机自定义怎么设置)

  • 华为荣耀8x手机屏幕几英寸(华为荣耀8x手机怎么样)

    华为荣耀8x手机屏幕几英寸(华为荣耀8x手机怎么样)

  • 苹果11怎么复制粘贴(苹果11怎么复制nfc门禁卡)

    苹果11怎么复制粘贴(苹果11怎么复制nfc门禁卡)

  • ipad序列号dm开头什么版(ipad序列号开头是dmq)

    ipad序列号dm开头什么版(ipad序列号开头是dmq)

  • 淘宝无法付款怎么回事(淘宝 无法付款)

    淘宝无法付款怎么回事(淘宝 无法付款)

  • 任务管理器不可以用于(任务管理器不可以关闭什么)

    任务管理器不可以用于(任务管理器不可以关闭什么)

  • 苹果耳机丢了一个怎么配一个(苹果耳机丢了一只怎么补配)

    苹果耳机丢了一个怎么配一个(苹果耳机丢了一只怎么补配)

  • dtac是什么运营商(dc运营是什么意思)

    dtac是什么运营商(dc运营是什么意思)

  • 为什么我苹果id老是被锁(为什么我苹果id密码正确也登不上)

    为什么我苹果id老是被锁(为什么我苹果id密码正确也登不上)

  • 小米air2蓝牙耳机可以单独使用吗?(小米air2蓝牙耳机声音不平衡)

    小米air2蓝牙耳机可以单独使用吗?(小米air2蓝牙耳机声音不平衡)

  • ios10回忆怎么用(apple 回忆)

    ios10回忆怎么用(apple 回忆)

  • 京东是什么网站(京东商城是什么网站)

    京东是什么网站(京东商城是什么网站)

  • win10兼容性怎么设置(win10兼容性怎么关闭)

    win10兼容性怎么设置(win10兼容性怎么关闭)

  • linux打开文件命令(linux打开文件命令修改保存)

    linux打开文件命令(linux打开文件命令修改保存)

  • WPS文档的空白页如何删除(wps文档的空白页删除不了)

    WPS文档的空白页如何删除(wps文档的空白页删除不了)

  • 手机防火墙在哪里设置(手机防火墙在哪里去掉)

    手机防火墙在哪里设置(手机防火墙在哪里去掉)

  • 电脑开机显示屏显示无信号黑屏解决方法(电脑开机显示屏显示无信号黑屏怎么办)

    电脑开机显示屏显示无信号黑屏解决方法(电脑开机显示屏显示无信号黑屏怎么办)

  • 苹果IOS在Safari浏览器中将网页添加到主屏幕做伪Web App,自定义图标,启动动画,自定义名称,全屏应用(打开苹果safari浏览器)

    苹果IOS在Safari浏览器中将网页添加到主屏幕做伪Web App,自定义图标,启动动画,自定义名称,全屏应用(打开苹果safari浏览器)

  • vue通过url方式展示PDF方法总结(vue通过url访问单个页面)

    vue通过url方式展示PDF方法总结(vue通过url访问单个页面)

  • 大学生问AI(大学生问卷spss数据分析作业)

    大学生问AI(大学生问卷spss数据分析作业)

  • 5月份企业所得税
  • 财务软件费用可以抵税吗
  • 税收缴款书现在还有吗
  • 纳税人离线开票时间的文件
  • 汽车租赁企业
  • 企业土地使用税征收标准
  • 采购人员的费用
  • 个纳税人申报
  • 离职员工个税申报时员工状态依然是雇员
  • 分公司可以独立开银行账户吗
  • 个人所得税报税孩子的夫妻双方都报吗
  • 对公收到一分钱怎么做账
  • 金税维护费申报表
  • 其他应付款年终怎么结转
  • 能否向小规模纳税人开具专票
  • 计提应付票据利息的会计分录
  • 车间领用材料应填制什么凭证
  • 税局代开的法律顾问费能否抵扣
  • 城建税免征怎么记账
  • 企业给员工购买的团体意外险的被保险人一般是
  • 土地增值税纳税地点
  • 各税种会计分录
  • 2020年安装费的增值税税率是多少
  • 广告公司可以开服务费吗
  • 财税〔2017〕39号
  • 公司以银行存款名义为员工垫付医疗费分录怎么写
  • 劳务费按次500元
  • 民办非企业所得税免税政策
  • 小微企业减半征收印花税代码
  • 国家征收苗木专业合作社成员土地,应该怎样出示证件
  • 什么是小型微利企业标准2023
  • 赠送给客户的商品怎么做账
  • 房地产工程质量检测费计入什么科目
  • 企业所得税申报表A类
  • 支付股息如何做账务处理
  • 工商局查社保吗
  • el-cascader动态加载多级
  • 电子承兑汇票贴现怎么做账
  • harmonyos2.0.0怎么用
  • w11系统安卓
  • nvm安装及全局配置node
  • 低值易耗品摊销方法名称怎么选
  • centos-6.5-i386-bin-dvd1.iso
  • 在建工程的核算内容制度依据
  • php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
  • opencv讲解
  • php反射机制实现自动依赖注入
  • 简述跨期摊提账户
  • 办营业执照怎么填写经营范围
  • 26个字母!
  • C语言中如何计算除法
  • 公司必须要申报工资流水吗
  • 外企研发中心
  • 零申报一般怎么收费
  • mysql常用语
  • 交耕地占用税如何交
  • 销售退回的会计分录全过程
  • 子公司计提的盈余公积合并抵消
  • 固定资产发票有什么用
  • 去税务局核定税种多久生效
  • 收到汽车抵账账务处理
  • 某个项目投资多少钱怎么算
  • 基本医疗保险费是医保吗
  • 税控盘全额抵扣怎么做分录
  • 如何对企业进行有效的控制
  • mysql索引类型及原理
  • xp系统鼠标设置在哪
  • 如何关闭office开机自启动
  • Linux系统怎么重启网卡
  • 在linux中使用什么可以执行shell脚本
  • 升级win10系统后鼠标键盘无法用什么原因
  • xbox无法连接无线网络
  • android基础知识
  • 医院体检怎么拿发票
  • 河北农信登录密码错误
  • 发票扫码抽奖用什么软件
  • 12366纳税服务热线存在的问题
  • 电子三方协议怎么下载
  • 9月份公积金什么时候扣
  • 结售汇选择汇还是钞好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设