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

  • ss14二极管的作用(ss14二极管代换5819)

    ss14二极管的作用(ss14二极管代换5819)

  • excel下拉菜单怎么删除(EXCEl下拉菜单怎么添加选项)

    excel下拉菜单怎么删除(EXCEl下拉菜单怎么添加选项)

  • 6年老电脑装什么系统(6年老电脑装什么显卡好)

    6年老电脑装什么系统(6年老电脑装什么显卡好)

  • 荣耀9x可以开空调吗(荣耀9x可以打开空调用空调吗)

    荣耀9x可以开空调吗(荣耀9x可以打开空调用空调吗)

  • 为什么wi-fi满格信号却没有网络(为什么wifi满格还是很卡)

    为什么wi-fi满格信号却没有网络(为什么wifi满格还是很卡)

  • 微信改手机号过于频繁(微信手机号更改了还能改回来么)

    微信改手机号过于频繁(微信手机号更改了还能改回来么)

  • 拼多多可以买手机吗(拼多多可以买手机先用后付吗)

    拼多多可以买手机吗(拼多多可以买手机先用后付吗)

  • 如何让手机拥有双空间(如何让手机拥有平板的视野)

    如何让手机拥有双空间(如何让手机拥有平板的视野)

  • 电脑充电的时候可以正常使用吗(电脑充电的时候充电器为什么特别烫)

    电脑充电的时候可以正常使用吗(电脑充电的时候充电器为什么特别烫)

  • 苹果8怎么强制重启(苹果8怎么强制开机步骤)

    苹果8怎么强制重启(苹果8怎么强制开机步骤)

  • ios13怎么设置黑暗模式(苹果13怎么设置黑色)

    ios13怎么设置黑暗模式(苹果13怎么设置黑色)

  • 咸鱼二手服务怎么开通(闲鱼二手服务系统怎么开通)

    咸鱼二手服务怎么开通(闲鱼二手服务系统怎么开通)

  • 苹果11像素怎么调(苹果11像素怎么调最清晰)

    苹果11像素怎么调(苹果11像素怎么调最清晰)

  • 滴滴app买的券如何退(滴滴app买的券如何退回)

    滴滴app买的券如何退(滴滴app买的券如何退回)

  • 手机桌面上的备份与恢复怎么删除(手机桌面上的备忘录图标不见了)

    手机桌面上的备份与恢复怎么删除(手机桌面上的备忘录图标不见了)

  • oppoa9x抬头灯怎么设置(oppo手机怎么关闭一抬头就亮呢)

    oppoa9x抬头灯怎么设置(oppo手机怎么关闭一抬头就亮呢)

  • 抖音被拉小黑屋怎么办大概要封多少时间(抖音被拉小黑屋出来还有用吗)

    抖音被拉小黑屋怎么办大概要封多少时间(抖音被拉小黑屋出来还有用吗)

  • 怎么登录拼多多(怎么登录拼多多账号)

    怎么登录拼多多(怎么登录拼多多账号)

  • 怎么清理苹果喇叭灰尘(怎么清理苹果喇叭声音)

    怎么清理苹果喇叭灰尘(怎么清理苹果喇叭声音)

  • 144hz和240hz区别大吗(144与240hz区别)

    144hz和240hz区别大吗(144与240hz区别)

  • or函数是什么意思(or函数怎么写)

    or函数是什么意思(or函数怎么写)

  • 怎么禁止别人打qq电话(怎么禁止别人打电话)

    怎么禁止别人打qq电话(怎么禁止别人打电话)

  • Win7为什么会显示电脑未识别的网络 无internet访问(win7为什么显示多重网络)

    Win7为什么会显示电脑未识别的网络 无internet访问(win7为什么显示多重网络)

  • Autoware入门到精通(auto系列软件)

    Autoware入门到精通(auto系列软件)

  • 小规模合作社免税吗
  • 电子税务局规范
  • 领用库存商品用于固定资产
  • 什么是保函业务?如何进行核算?
  • 外购免税农产品进项税额如何抵扣
  • 开淘宝店怎么做账
  • 一般纳税人收到普票需要价税分离吗
  • 已出库未开票未收款会计分录
  • 合同每三个月付一次款
  • 库存现金盘盈盘亏的账务处理
  • 增值税税额由哪方承担
  • 股权出资登记管理办法已废止
  • 开外管证再省外预缴税收要怎么报税?
  • 员工工资的扣点
  • 开办费一次性摊销企业所得税
  • 房屋维修专用发票图片
  • 辅导期一般纳税人预缴增值税
  • 我是小规模企业客户要求开专票不开投诉
  • 发票金额与支票数量不符
  • 企业所得税纳税申报表A类
  • 小企业会计准则和企业会计准则的区别
  • 企业销售收入含不含税
  • 失控发票账务处理
  • 4月发票能入1月吗
  • mac怎么调整网页大小
  • 工程会计的主要工作
  • 职工社保调整
  • windows11启动卡在转圈圈
  • 苹果电脑如何查看内存大小
  • 华为鸿蒙harmonyos官网4.0
  • 微软surface售后电话人工
  • 收益类账户的会计分录
  • 待机最长的手机智能排行榜 2020
  • 入门易学
  • smart制作
  • 购入无形资产会计处理
  • 会计结账时账户余额为零
  • 库房存货标准
  • PHP:imagecreatefromxpm()的用法_GD库图像处理函数
  • 进项税额转出余额在贷方怎么处理
  • PHP中strpos、strstr和stripos、stristr函数分析
  • 捐款怎么处理
  • web渗透违法吗
  • 委托境外机构研发
  • 报销差旅费用什么发票
  • 交给工会的40%的工会经费里还要再返60%吗
  • 织梦网站怎么添加关键词
  • 融资租赁手续费一次性还是摊销
  • 报销连号发票的合理解释
  • 以前年度费用退回
  • 发现以前年度错账,不论错账是否涉及损益
  • 个税专项附加扣除标准调整
  • 信用减值损失是什么项目
  • 企业对于无法收回的应收账款,应列入
  • 投资性房地产从成本模式转为公允价值模式
  • 退回货款给客户怎么做会计分录
  • 车辆报废如何进行
  • 投资主体将其拥有的货币或产业资本
  • 待结算财政款项是什么科目
  • 政府非税收入项目挂接流程图
  • 电子承兑汇票是什么
  • 水电费收据可以写一张上吗
  • mysql5624安装教程
  • 桌面预览
  • ubuntu系统常用命令
  • ipad和macbook怎么交互
  • win10 directx9
  • win10语音控制电脑
  • win7系统通过wmic命令
  • 隐藏网络怎么连接电脑连不上
  • docker 开源项目
  • apache使用端口
  • javascript操作数组的方法
  • jquery 插件编写
  • 现在是一般纳税人,属于小规模发生的业务怎么开票
  • 深圳市的各区域排名
  • 20年灵活就业人员社保新标准
  • 深圳税务 qzzn
  • 国家税务北京税务局
  • 买车购置税去哪里交钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设