nodejs 的 mvc,代码组织的方式怎么更合理?

2015-02-10 01:20:23 +08:00
 thonatos

RT.

Before

原来是按照以前学习的时候的习惯,将不同的controller统一放到一个controller目录,然后路由放到router目录,service什么的,当然也是那么放的,但说实话,很难处理,找文件蛋碎的一笔。

Now

其中common那边把一些与视图无关的组件提出来了,然后类似blog/doc/user都是和路由以及视图相关的功能。

Then

那么问题来了,有没有必要要分离路由和controller?

自问自答一些,刚才想了一会,感觉还是必要的,因为我的service和视图无关,换言之,它主要是处理各种请求、处理代码,或者说是一个工具类一样的存在,它就是必须得了~

Github: https://github.com/thonatos/MT-Notes

代码放在上面,主要功能是一个随意发心情的小博客和一个从github上拿个人笔记的文档站。

4500 次点击
所在节点    Node.js
11 条回复
Kai
2015-02-10 02:18:31 +08:00
moved to /go/nodejs
windyboy
2015-02-10 09:52:56 +08:00
现成的框架很多
我现在比较偏向express一类的
thonatos
2015-02-10 10:26:27 +08:00
@Kai

其实我觉得,这个问题,不只是在node上面,同样对其他语言也有参考,代码组织的方式(准确说是MVC的结构),对其他语言也是适用的。
thonatos
2015-02-10 10:27:44 +08:00
@windyboy

我的程序就是基于express的,但是4.x以后的express,在努力的解耦,也就是自由度更高,和我说的问题关系不是很紧密哦~
Stony
2015-02-10 10:39:17 +08:00
nodejs 的MVC结构,参考 sailsjs 吧。
MVC的问题就是有时候觉得拆分太细,增加一个功能,基本是 M V C都要改,特别是 V 和 C,因为功能展现的界面不一定是一个,所以是多组 V 和 C 都要改,动不动就好多个文件,很繁琐。
MVC的优点嘛,等你要维护一个功能就发现了,不管是调试还是修改,代码流非常简单统一,有bug很容易定位,找关键词就能把相关的代码都找出来,嗯,你之前的努力现在得到了成果。
tobeyouth
2015-02-10 10:50:57 +08:00
同@Stony 用sails吧,文件目录都给你创建好了。
esyed
2015-02-10 23:57:43 +08:00
用的webstrom?
remaerd
2015-02-11 00:55:50 +08:00
说实话,个人认为现在要做有后端的 App 的话,Web 前端还是跟后端分开写比较好。后端用 ExpressJS 纯做 REST API,Web 前端做成静态网站,用 CORS 限制访问。

我个人非常不喜欢 Django 和 ROR 这些框架。对于后端而言,加上各种无必要的 Template Engine 和 MVC 框架只会是负担。这也是 ExpressJS 选择将全部东西解藕的理由吧。
thonatos
2015-02-11 14:02:53 +08:00
@Stony
@tobeyouth

(⊙v⊙)嗯,找时间去看一下,但是感觉目前我这里使用的方式,也是比较合理的,相对之前,现在这样组织代码,定位和修改,都方便了不少。
thonatos
2015-02-11 14:03:30 +08:00
@esyed

是的,webstorm
thonatos
2015-02-11 14:05:12 +08:00
@remaerd

恩,对的,我个人站这里需要博客功能,所以没分离,其他的项目是分离了。

参考:

http://www.thonatos.com/docs/MT-Experimentations/Trying-For-Separating-FrontEnd-From-BackEnd.md

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX