国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

淺析N-ode.js中使用依賴注入的相關問題及解決方法

2019-11-02 14:56:56
字體:
來源:轉載
供稿:網友

  這篇文章主要介紹了淺析Node.js中使用依賴注入的相關問題及解決方法,Node.js是一個將JavaScript應用運行于服務器端的框架,需要的朋友可以參考下

  最近,我轉向使用依賴注入來幫助理解分離代碼的簡單途徑,并有助測試。然而,Node.js中的模塊依賴Node提供的系統API,這很難判斷私有依賴被恰當的使用。一般的依賴注入很難在這種情況下使用,但現在不要放棄希望。

  requireCauses 問題

  Node.js很容易依照需求導入依賴。它運行的很好,并且比AMD模式加載器例如RequireJS要簡單。當我們模擬那些依賴的時候問題就來了。如果Node.js中模型的加載是受控的,我們怎么做才能控制讓偽對象在測試期間被使用到?我們可以使用Node的vm模式,通過vm我們可以再新的上下文中加載模型。運行在新的上下文中,我們可以控制需求反射出模型的方法。

  解決方案

  謝謝這篇文章, 現在可以給你提供一個相當不錯的解決方案. 代碼在下面:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 var vm = require('vm'); var fs = require('fs'); var path = require('path');   /** * Helper for unit testing: * – load module with mocked dependencies * – allow accessing private state of the module * * @param {string} filePath Absolute path to module (file to load) * @param {Object=} mocks Hash of mocked dependencies */ exports.loadModule = function(filePath, mocks) { mocks = mocks || {};   // this is necessary to allow relative path modules within loaded file // i.e. requiring ./some inside file /a/b.js needs to be resolved to /a/some var resolveModule = function(module) { if (module.charAt(0) !== '.') return module; return path.resolve(path.dirname(filePath), module); };   var exports = {}; var context = { require: function(name) { return mocks[name] || require(resolveModule(name)); }, console: console, exports: exports, module: { exports: exports } };   vm.runInNewContext(fs.readFileSync(filePath), context); return context; };

  你也可以在 這里 下載代碼片段 . 雖然在不是在文章發布最多的代碼, 他仍然可以使用一些解釋. 當我們測試時, 我們要加載這個模塊進入測試, 使用theloadModulefunction代替ofrequire加載模塊測試.

  第一個參數filePath指定了我們要測試模型的查找位置。第二個參數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 密云县| 双鸭山市| 淅川县| 诸暨市| 西吉县| 虹口区| 凉城县| 彭水| 广元市| 勃利县| 米林县| 镇原县| 张家口市| 小金县| 比如县| 宜川县| 西畴县| 伊宁县| 琼海市| 石城县| 涞水县| 米林县| 和林格尔县| 南宫市| 蓝山县| 贵溪市| 平湖市| 宁强县| 迁西县| 南昌县| 泽州县| 荥阳市| 襄樊市| 田阳县| 恩平市| 双柏县| 灵宝市| 六安市| 枞阳县| 吴川市| 海晏县|