位置: 编程技术 - 正文

浅析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如何使用)

  • 从香港向境外汇款怎么汇
  • 应交税费应交增值税明细账怎么填
  • 个人所得税个体户减半
  • 差额纳税的税率
  • 如何申报个人所得税减免项目
  • 材料费用发票的记账凭证
  • 外贸企业的出口收入免征其地方水利建设基金
  • 什么是财务报表审计
  • 季报业务活动表本月数
  • 行政单位要考什么
  • 外币借款业务的会计分录还款时利息
  • 交易性金融资产有哪些
  • 未开收入下月开票怎样做分录
  • 小企业固定资产折旧方法
  • 企业所得税弥补亏损怎么算
  • 未使用的固定资产提不提折旧
  • 上级单位给的奖金叫什么
  • 国税定额发票有效期是多长时间
  • 发票销项负数的会计分录怎么做?
  • 没有发生关联交易需要关联申报吗?
  • 财务报表第一季度引用的期初数是第四季度还是年报
  • 水利建设基金多交可以退么
  • 小规模纳税人代账一年多少钱
  • 单位外汇账户可分为
  • 技术咨询增值税税率
  • 代订机票的电子专用发票可以抵扣吗
  • 制造费用明细科目有哪些
  • 如何在vue项目中导入外部的包
  • linux和windows的区别和联系
  • 苹果手机铃声删除在哪里
  • 本月收到的发票可以下月勾选抵扣吗
  • 委托去银行办理业务的委托书
  • 公司买发票的费用怎么做账
  • beservice是什么进程
  • csinsmnt.exe进程的作用介绍 csinsmnt是什么进程
  • php imagick
  • 喝薏米红豆水最佳时间
  • 职工福利费用怎么入账
  • 固定资产一次性折旧账务处理
  • ChatGPT进阶-提示词中文版
  • php教程从入门到精通
  • 会计记账凭证摘要如何编写
  • 外国人在中国工作的基本条件
  • c语言fread函数的用法示例
  • 微信小程序实现支付功能
  • SQL Server 2008 Express如何开启远程访问
  • 美团平台技术部是干什么的
  • 企业收到土地补偿金需要开发票吗
  • 订单不足停工
  • 小规模企业主营业务成本分录
  • 装修公司财务报表图片
  • 已认证发票是否已抵扣
  • 增值税抵扣了,主要成本怎么算
  • 以前年度损益调整结转到哪里
  • 长期股权投资的初始投资成本
  • 子公司提的盈余公积合并时如何抵消
  • 餐饮充值规则说明
  • 月末应付职工薪酬为负数怎么办
  • 小规模纳税人发票怎么开
  • 一般要做代理,授权书有什么用
  • 总分类账封面封地和启用页的区别
  • 现金支出业务的流程步骤包括
  • 建账的要点及应注意的问题
  • sqlserver控制器名称
  • 快速解决小孩便秘
  • windows7如何设置
  • 怎么操作win10系统
  • win10周年版
  • win7由于所要求的文件丢失或损坏
  • 11月 Win8.1 Update 3更新哪些内容?开始菜单依然没有
  • 深入解析windows
  • unity3d ngui-TweenRotation翻牌动画
  • 字符串查找子串
  • js判断浏览器内核和版本
  • 税收和社保不在同一地缴纳怎么办
  • 在深圳居住的香港居民怎样办理边境地区通行证
  • 一般纳税人买车可以抵扣进项吗
  • 租房税多少钱
  • 北京车过户到廊坊标准
  • 红色通知字体
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设