首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高速公路中的全局对象

问高速公路中的全局对象
EN

Stack Overflow用户
提问于 2018-04-07 09:48:39
回答 1查看 47关注 0票数 0

我正在开发一个学校管理系统。当教师发送一个post请求时,在我的后端,我将在路由中创建一个全局对象。因此,当多个教师访问服务器时,将创建多个全局对象.或者每个老师都访问同一个对象?(会不会是同一个对象?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-07 14:39:55

我真的希望通过在路由中创建一个全局对象,您的意思是在-

1. global对象本身- global.myGlobalObj = { some-var: 'some-val' }或

2. process object - process.myGlobalObj = { some-var: 'some-val' }或

3. express-app --也许有点像app.set('myGlobalObj', someOb)

或者在其他的全局物体上。在这种情况下,每个请求响应周期都将获得对同一个对象的访问权限。

但严格来说,对于您打算开发的任何类型的系统,都不建议使用此实践。主要原因是-

  1. 是不稳定的。一旦应用程序崩溃,依赖于全局对象当前值的每个request都将无法正确完成,因为该值已随崩溃而丢失/重置。
  2. 它不遵守REST体系结构的原则,即每个请求都必须是无状态的,并且应该包含足够的数据/params,以便自己成功地完成请求。
  3. 全球化是面向对象编程和函数编程范式存在的原因之一。全局变量使您的应用程序更易受攻击,更不易理解和难以测试。

解决方案

如果与访问变量相关的性能无关紧要,那么只需将变量存储在带有索引的DB中,并在每个请求上访问它,否则使用in-memory database (如Redis )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49706028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档