我在配置文件中,使用app.set()设置了一个相当于常量的值,然后在控制器中使用app.get()来取这个值,使用它。 这种方法可以实现,但是我不清楚使用这种方法是否不妥善?求大神帮我分析分析
7 回复
你是指express么? 如果是常量的话,这个量是初始就定了的,那直接写成配置文件就行吧(写成一个module吧),但是这个方法也不太好,比如有多个模块要用到这个常量的时候,就得每次require,用app.set(),取用时必须能取到app这个变量,要是有些模块取不到app那就没戏了,那你必须传入app值。 对于你这种情况,用app.get()没错吧。。。。 BTW, app.get()方法有何不妥善的地方?
@soliury 你分析的情况和我的很类似,因为项目用compoundjs写的,并且有三种环境例如development,product,等。而在不同的环境下, 这个常量的值是不相同的。在我的每一个Controller中都能取到app这个变量。所以暂时在每个环境下的配置文件中用app.set()设置这个常量,在每一个controller中可以用app.get()取这个变量来使用(实际在项目中用到的这个常量的地方很少,现在只有一处使用)。 另外我同事也给我提供了一种方法:在Controller中判断当前是在那种使用环境,然后直接在这里设置这个常量值。 不知道这两种方法哪一种好?