博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js 的原型注入方法
阅读量:6466 次
发布时间:2019-06-23

本文共 1022 字,大约阅读时间需要 3 分钟。

问题提出

现在有两个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 uidmodule.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 uidmodule.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

你可能感兴趣的文章
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
HDU 1402 A * B Problem Plus FFT
查看>>
[CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
给定一个序列,判断该序列是否为二叉树查找树的后序遍历序列
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
查看>>
leveldb学习:DBimpl
查看>>
MySQL存储引擎--MYSIAM和INNODB引擎区别
查看>>
[Recompose] Stream Props to React Children with RxJS
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>
rsync常见问题及解决办法
查看>>
AKM项目轶事之GBS同事转入GDC
查看>>
MySQL日期 专题
查看>>