位置: 编程技术 - 正文

浅析Node.js中使用依赖注入的相关问题及解决方法(node.js使用教程)

编辑:rootadmin

推荐整理分享浅析Node.js中使用依赖注入的相关问题及解决方法(node.js使用教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js的理解,node.js的使用,node-js,node.js使用教程,node-js,node.js用途,node.js用途,node.js用途,内容如对您有帮助,希望把文章链接给更多的朋友!

最近,我转向使用依赖注入来帮助理解分离代码的简单途径,并有助测试。然而,Node.js中的模块依赖Node提供的系统API,这很难判断私有依赖被恰当的使用。一般的依赖注入很难在这种情况下使用,但现在不要放弃希望。

requireCauses 问题

Node.js很容易依照需求导入依赖。它运行的很好,并且比AMD模式加载器例如RequireJS要简单。当我们模拟那些依赖的时候问题就来了。如果Node.js中模型的加载是受控的,我们怎么做才能控制让伪对象在测试期间被使用到?我们可以使用Node的vm模式,通过vm我们可以再新的上下文中加载模型。运行在新的上下文中,我们可以控制需求反射出模型的方法。

解决方案

浅析Node.js中使用依赖注入的相关问题及解决方法(node.js使用教程)

谢谢这篇文章, 现在可以给你提供一个相当不错的解决方案. 代码在下面:

你也可以在 这里 下载代码片段 . 虽然在不是在文章发布最多的代码, 他仍然可以使用一些解释. 当我们测试时, 我们要加载这个模块进入测试, 使用theloadModulefunction代替ofrequire加载模块测试. 第一个参数filePath指定了我们要测试模型的查找位置。第二个参数mocks包含一个对象,对象的属性名称要和我们尝试require的模型的名称相匹配。那些属性指定的值就是伪对象,用来代替一般被require的模型。

本质上看就是用vm来加载和运行模型在另一个“上下文”中。换句话说,我们重建了全局变量(例如require和exports)以便我们能控制它们。需要注意的是我们编写了一个可用的新require函数。所做一切就是检查一下用执行的名字是否有一个模拟的依赖,如果每日有,我就就把它委托给那个常用的require函数。

使用模块加载器的例子

如果你还有点困惑,你可以看下面的代码示例,看它在上下文中的使用,也许能帮你清楚一些。首先,我们创建一个简单的模块。

主要注意是在7至行,我们为fs创建了一个伪对象并使用我们新的loadModule函数将这个使用的对象联系到上面的小模块中(我的意思是真棒!请记住,这是真棒,对不对?)。

在Mac OS下使用Node.js的简单教程 这里有一篇很好的Node.js介绍文章greatnodejsintro,它将给你一个非常方便的介绍Node.js和CouchDB,并给出一个实例实现REST的服务用于执行书签的CRUD操作,使

在Node.js应用中使用Redis的方法简介 在开始本文之前请确保安装好Redis和Node.js以及Node.js的Redis扩展——node_redis首先创建一个新文件夹并新建文本文件app.js文件内容如下:varredis=require("redis")

Nodejs实现批量下载妹纸图 听说最近下载妹子图很火?Nodejs(javascrpt)自然不能落后~虽然从没写过像样的Nodejs程序,但作为至少翻过书的前端同学来说,Nodejs用得还蛮顺手的哈~花

标签: node.js使用教程

本文链接地址:https://www.jiuchutong.com/biancheng/377989.html 转载请保留说明!

上一篇:浅析Node.js中的内存泄漏问题(node.js详解)

下一篇:在Mac OS下使用Node.js的简单教程(macos如何使用)

  • 加计扣除10%进项税会计分录 申报表
  • 自然人收缴税务客户端
  • 新公司什么时候开始建账
  • 增值税小规模纳税人免征增值税政策
  • 工程监理费开什么发票
  • 金税盘技术维护费怎么申报
  • 固定资产一次性扣除政策文件
  • 报账员是会计还是出纳
  • 个体户餐饮经营范围全部怎么写
  • 下岗职工可以享受低保吗
  • 应收账款科目怎么写
  • 短期薪酬是会计科目么
  • 土地增值税清算利息扣除规定
  • 技术服务费属于无形资产吗
  • 残保基金属税金怎么算
  • 个体户交税起征点 2023年
  • 销售已使用过的固定资产增值税
  • 平均年限法如何计算
  • 个税申报月份有误如何调整?
  • 税务师如何办理入会
  • 采购材料的运费怎么做分录
  • 华为手机蓝牙传送照片到苹果手机
  • 员工工伤一次性赔偿申请书
  • windows7公用网络
  • 华为Mate50Pro配置多少
  • 在线网速测试网站测速工具
  • 银行发放贷款银行会计怎么做账务处理
  • 总资产算不算负债
  • 企业将自有资金无偿提供
  • uniapp h5发布
  • Win10电脑重装系统要多少钱
  • avc格式是什么
  • form action target
  • 瑞士·劳特布龙嫩小镇
  • 收外汇怎么做账报税
  • 水青冈是常绿还是落叶
  • vue3.0路由配置
  • 坏账准备税收调整
  • vue组件用法
  • des算法加密解密过程
  • 支付第三方劳务费计入什么科目
  • 装修费摊销3年会计分录
  • 税收收入退还书有时间限制吗
  • 红字写信是什么意思
  • 以物易物对企业有什么好处
  • 小规模增值税减征额怎么算
  • 合并报表为什么要抵消子公司所有者权益
  • 加计抵减可以补提本年的税吗
  • 简易征收适用哪些业务租赁
  • 直接转销法还允许使用吗
  • 公司垫付生育津贴后,社保局未报销给公司
  • 背书是什么含义
  • 新政府会计制度下,属于资产类科目的是
  • 合并报表抵消分录的基本原理
  • 应付账款属于外币货币性项目吗
  • 收取的招标资料费增值税税率
  • 明细与发票
  • 工会经费教育经费福利费计提比例
  • 建设期收到罚单怎么处罚
  • 生产配合销售还是销售配合生产
  • 研发部门的房租一次记入还是分摊
  • 提高纳税遵从度依靠行政执法还是纳税服务
  • 预计负债的会计和税务处理
  • aix解除镜像
  • dos命令环境
  • nvsvc.exe - nvsvc是什么进程 有什么用
  • opengl clamp
  • Python中文分词的第三方库
  • 批处理修改文件后缀名
  • css实现放大缩小的动画效果
  • android加载gif图片
  • jquery监听span内容的变化
  • python的设置
  • pycharm sftp
  • 做网页的流程与步骤
  • jquery调用iframe中的方法
  • axios异步
  • code encode的区别
  • 税务总局2019 14号
  • 水库淹没区耕地补偿标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设