大佬教程收集整理的这篇文章主要介绍了node.js – 模块化编程和节点,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
更新2:我已经取得了巨大的进步.我即将在GitHub上提交大量的代码,这将使人们能够使用Node和Express来做真正的,非常好的模块化编程(使用模块暴露客户端和服务器端代码).请继续关注
更新3:我重写了这个东西作为一个系统注册模块,并使他们通过事件/挂钩系统进行通信.它非常好地来了我已经有很多代码已经很好了 – 我只是把它移植到新的系统上.随便看看GitHub上的项目:https://github.com/mercmobily/hotplate)
更新4:这很好.事实证明,我关于一个模块是客户端和服务器的想法是真的正常工作.
更新5:该模块越来越接近可用的东西.我实现了一个新的加载程序,它将考虑到init()函数将invokeAll() – 并且将确保提供该钩子的模块将被首先加载.这将打开电热板到一个全新的水平.
更新6:热板现在接近12000行代码.到了二月份的某个时候,我想象将会有近20000行的代码.它做了很多东西,这一切都从StackOverflow开始!我需要它来开发自己的SaaS,所以我真的需要在2月之前完成(@R_974_9447@冲刺到7月,完成BookingDojo的第一个版本).谢谢大家!
我写的东西可能会变成一个相当大的软件.简短的故事是nodejs Express Mongodb / Mongoose Dojo(客户端).
注意:本文中的问题标记为[Q1],[Q2]等
来自Drupal的背景(并且知道它是如何演化的,我想避免的),我是一个模块怪胎.目前,我已经完成了应用程序的样板(电热板:https://github.com/mercmobily/hotplate).它做的所有无聊的东西(用户,工作区,密码提醒等),它缺少相当多的东西.
我想提出一个可以让Drupal类似的模块(但可能更好)的设计.那是:
>模块可以定义新路由并处理它们
>模块安装在系统范围内,然后每个工作区都可以启用它们的列表
最初的架构可能是这样的:
>一个“modules”目录,每个模块有一个目录
>每个模块都有一个用于Javascript侧面的“public”文件的目录
>每个模块都有public / startup.js,它将被包含在应用程序的javascript中
>每个模块将具有server / node.js,如果需要,服务器将被服务器包含在运行中
>将定义一条路线,像/app/:workspacEID/modules/MODULE_NAME/.*这样的中间件可以检查该工作区是否启用了MODULE_NAME,如果是,则使用传递的参数调用模块的函数
[Q1]:这是否含糊不清?
问题:
>我想让这个动态.我想要现场需要的模块.这应该是足够容易的,通过要求事情飞行.
> server / node.js会有一个调用的函数,但是这个函数感觉/看起来很像路由器本身
[Q2]你有什么具体的提示吗?
这些似乎并没有太多的关注.但是,当谈到安全性时,真正的问题就是出现.
>隐私这是一个讨厌的一个.目前,所有的电话都会对workspacEID进行mongoDb过滤.我想强制执行某些方式,以便模块无法清楚地访问数据库,以便每个模块无法访问属于其他工作区的数据
>用户自定义模块.我希望能够让用户上传自己的模块(也可能让其他用户可以使用它们).但是,这样做有助于人们上传节点本身执行的代码!你会怎么样呢?
[Q3]您将如何处理这些隐私/安全问题?有没有办法例如在一个节点沙箱中运行用户上传的代码?如何访问文件系统等?
谢谢!
它大部分是我上面描述的.更重要的是,使用hotPlate(使用hotPage和hotClientPages,默认可用),您可以编写一个模块
>定义一些路线
>使用UI定义“public”目录
>定义加载该模块时必须加载的特定CSS和JS文件
>如果需要,可以添加路由特定的JS
状态:
我正在接受这个答案,因为我完成了开发Hotplate的“核心”,这就是这个答案.我仍然需要“做”事情(例如,一旦我写了文档,我将确保“热板”是模块中唯一的目录,而没有一个示例服务器).但是,基础是在那里.在“核心”方面,只是真的错过了这个故事的“认证”方面(这将需要很多思考,因为我想让它与数据库无关,并与护照进行接口). Dojo小部件是一个很好的奖金,虽然这个框架可以用于任何东西(实际上骨干特定的代码将是sweeeeet).
什么电热板不做:
什么电热板不做,是给用户上传模块的能力,然后将其加载到应用程序中.这是非常棘手的.客户端不会那么糟(用户可以定义Javascript来上传,也可能有一个模块来做,不用担心).然而,服务器端最好是棘手的.只有太多的东西可能会出错(客户端可能会上传一段阻塞的代码,或者他们可以开始读取文件系统,他们可以访问完整的数据库,等等).这些问题的解决方案是可行的,但是它们都不容易(例如,您可以笼罩用户的节点环境并使其运行在不同的端口上)等等,但是一些问题仍然存在.但是,总有希望.
以上是大佬教程为你收集整理的node.js – 模块化编程和节点全部内容,希望文章能够帮你解决node.js – 模块化编程和节点所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。