问题提出

现在有两个DAO类,我希望他们能互相访问,生成实例,但是相互require()会导致循环引用,出现空对象

User.class.coffee

Group=require './Group.class.js'class User constructor:(@uid)->...
getGroups:(cb)-> db.query 'XXXXX',(err,rows)-> cb null,(new Group row.gid for row in rows)module.exports=User

Group.class.coffee

User=require './Group.class.js'class Groupconstructor:(@gid)->...getAdmin:(cb)->db.query 'xxxxxx',(err,uid)->cb null,new User uid
module.exports=Group

上面这样的写法,出现了循环引用,User,Group中至少有一个会出现空对象

我的解决方法

使用三个文件,第三个文件为注入文件,为类文件原型添加方法

User.class.coffee

class User constructor:(@uid)->......

Group.class.coffee

User=require './Group.class.js'class Groupconstructor:(@gid)->...getAdmin:(cb)->db.query 'xxxxxx',(err,uid)->cb null,new User uid
module.exports=Group

User.inject.coffee

User=require '../User.class.js' Group=require '../Group.class.js'User.prototype.getGroups:(cb)-> db.query 'XXXXXXX',(err,rows)->cb null,(new Group row.gid for row in rows)

有什么更好的解决方法,请联系我,谢谢。

转载于:https://www.cnblogs.com/ireul/p/3404906.html

Node.js 的原型注入方法相关推荐

  1. node.js mysql防注入_避免Node.js中的命令行注入安全漏洞

    在这篇文章中,我们将学习正确使用Node.js调用系统命令的方法,以避免常见的命令行注入漏洞. 我们经常使用的调用命令的方法是最简单的child_process.exec.它有很一个简单的使用模式;通 ...

  2. import export php,import与export在node.js中的使用方法

    import与export是es6中模块化的导入与导出,node.js现阶段不支持,需要通过babel进行编译,使其变成node.js的模块化代码.(关于node.js模块,可参考其他node.js模 ...

  3. node服务器放vue项目,本地Vue项目跨域请求本地Node.js服务器的配置方法

    前言:跨域请求是在本地开发时经常遇到的需求,也很简单,只是几句代码配置一下的问题.我初次配置跨域请求时由于官方的说明太简洁,找到的教程又落伍,调试了一番并没有解决问题,到最后解决问题,已花费了很多时间 ...

  4. JavaFX下的WebView中js调用java注入方法提示undefined?

    关键词: java注入无效 js无法调用java方法 java上下文注入未生效 背景: 官方提供的demo是直接new JavaApp(),但实际使用不行,需要刷新页面后才生效 解决方案: 主要修改的 ...

  5. 在CentOS 7上安装Node.js的4种方法(yum安装和源码安装)

    CentOS 7上的安装方法,其中涵盖了源码安装,已编译版本安装,EPEL(Extra Packages for Enterprise Linux)安装和通过NVM(Node version mana ...

  6. linux安装nodejs 7,在CentOS 7上安装Node.js的4种方法

    Node.js和Javascript有着千丝万缕的联系,可以说Node.js让Javascript显得从未如此强大.好吧-微魔其实是个门外汉-但是这并不能阻碍微魔学习探索未知的信心~今天在国外闲逛,看 ...

  7. Node.js的原型继承函数 util.inherits

    util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数.JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同.Jav ...

  8. Node.js~在linux上的部署~外网不能访问node.js网站的解决方法

    这是上一篇node.js部署到linux上的后续文章,当我们安装完node.js之后,建立了sailsjs的网站,然后在外面电脑上无法访问这个网站,这个问题我们如何去解决? 解决思路: 查看linux ...

  9. Node.js Express 框架 GET方法

    GET 方法 以下实例演示了在表单中通过 GET 方法提交两个参数,我们可以使用 server.js 文件内的 process_get 路由器来处理输入: index.htm 文件代码如下: < ...

  10. 一道题学习node.js中的CRLF注入

    前言 这几天刷题遇到在node.js题目中注入CRLF实现ssrf的题目,对于我来说知识听新颖.在此记录一下. CRLF注入 学习过http请求走私漏洞的师傅对于这个CRLF肯定不会陌生.所谓的CRL ...

最新文章

  1. gulp 配置自动化前端开发
  2. php的PDO手记1
  3. Java内部类详解(使用场景和好处、相关内部类的笔试面试题)
  4. 你见过的“垃圾”项目是这样子么?
  5. 12306订票助手java_12306订票助手
  6. Git 别名(分布式版本控制系统)
  7. HubbleDotNet开源全文搜索数据库项目--技术详解
  8. TCP TIME_WAIT详解
  9. 怎么找网页源文件位置_原神白铁块位置分布图 原神白铁块怎么找
  10. Java全栈工程实践
  11. 华为认证工程师HCNE培训资料
  12. Android 11 新特性和API兼容
  13. c语言程序设计工作任务,C语言程序设计任务驱动教程
  14. Linux安装及美化Typora详细步骤
  15. 智能车浅谈——过程通道篇
  16. 奇遇MIX体验:加入全彩VST透视,开创消费级VR一体机新时代
  17. Axure移动端实用元件库分享
  18. R语言高维数据的pca、 t-SNE算法降维与可视化分析案例报告
  19. 原 农民工自学java到找到工作的前前后后
  20. Unity ShaderLab 常用函数

热门文章

  1. Java日志框架(二)
  2. xshell 中使用vim 显示Xmanager运行失败:
  3. 《构建之法》阅读笔记05
  4. PInvoke在 2.0 3.0的时候正常 升级到4.0后出错。
  5. position的absolute;fixed;relative;static;inherit属性小结
  6. WPF中radiobutton 的 data binding方法
  7. vs2008+sqlserver2008 同一台服务器webconfig 数据连接串的配置要点
  8. 用JavaScript验证密码强度
  9. Dev--Config Files
  10. redis如何进行分库存储和选择模糊清除缓存