`

controller,使路由变得简介

阅读更多

路由是最能体现一个网站运作方式的文件,然而如果里面放入太多方法,就会变得臃肿,所以将方法放入controller(控制器)。

下面看一下对比:

方法放入controller前:

module.exports = function (app) {

    app.get('/pages/main_page.html', function (req, res) {
        res.sendfile('public/pages/main_page.html');
    });
    app.post('/pages/save_meal_info',function(req,res){
        var lists = new List_info(req.body.name,req.body.restaurant,req.body.meal,req.body.price);
        lists.save(function(err){
        })
    });
    app.get('/pages/get_meal_list',function(req,res){
        Take_list.getAll(function (err, posts) {
            if (err) {
                posts=[]
            }
            res.send(posts)
        })
    });
    app.get('/pages/order-meal.html', function (req, res) {
        res.sendfile('public/pages/order-meal.html');
    });
    app.get('/pages/pick_people.html', function (req, res) {
        res.sendfile('public/pages/pick_people.html');
    });
    app.get('/pages/get_names',function(req,res) {
        Person.getAll()
            .then(function(result){
                res.send(result)
            })
    });

 

放入controller后:

module.exports = function (app) {

    app.get('/pages/get_names', NameController.getAll);

    app.get('/pages/get_meal_list', OrderFormController.getAll);

    app.get('/pages/main_page', MainControllre.show);

    app.post('/pages/save_meal_info', OrderFormController.save);

    app.get('/pages/order-meal', OrderMealController.show);

    app.get('/pages/pick_people', PickPeopleController);

 

整洁,一目了然。

写法:

在根目录新建文件夹controller用于存放,最好操作同一数据的controller放在一个文件中。

controller示例:

function ListInfoController(){

}

ListInfoController.show = function(req,res){
    res.sendfile('public/pages/show_list.html');
};

module.exports = ListInfoController;

 

 

Person = require('../models/Person.js');

function NameController(){

}

NameController.getAll = function(req,res){
    Person.getAll()
        .then(function(name){
            res.send(name)
        })
};

module.exports = NameController;

 

分享到:
评论

相关推荐

    SDN路由选择

    传统的网络维护很困难:新协议的部署和故障排除使网络维护变得非常困难。 在SDN环境中,SDN通过使用层次结构的思想将数据与控制分开。 在控制层(包括逻辑集中和可编程控制器)中,它可以掌握全局网络信息,方便...

    PHP框架DoitPHP v1.3.zip

    二、简明高效的视图运行机制,使视图文件的开发操作变得简单易行。 三、灵活的扩展模块(module)设计,能够非常容易地调用如:SMARTY、ADODB、CKEDITOR、TINYEDITOR、FPDF、PHPMAILER、PHPRPC等第三方开源程序。...

    使用 Ruby 进行 Web 应用程序的开发和部署.docx

    对于现代企业而言, Web 应用程序已经变得十分重要,不仅能 够提供高效便捷的服务体验,还能直接影响到企业的经营和发展。 因此,开发和部署Web 应用程序必须高效可靠,这就需要使用优 秀的 Web 开发框架和工具,而 ...

    WindFramework v1.0.zip

    虽然目前的组件库还不算丰富健壮,但是基于这种开发模式,使组件的扩展变得非常的容易。 windframework拥有一个强健的内核,它实现了基于配置的Ioc控制反转技术。开发者只需要简单的配置,就可以实现类的依赖注入,...

    AngularJS中的按需加载ocLazyLoad示例

    但是当我们的网站渐渐庞大起来,这样子的加载策略让网速初始化速度变得越来越慢,用户体验不好。二来,分模块加载易于团队协作,减低代码冲突。 二、按需加载的对象 各个Controller模块、Directive模块、Server模块...

    PhP框架DoitPHP v1.5 MySql版.zip

    二、简明高效的视图运行机制,使视图文件的开发操作变得简单易行。 三、灵活的扩展模块(module)设计,能够非常容易地调用如:SMARTY、ADODB、CKEDITOR、TINYEDITOR、FPDF、PHPMAILER、PHPRPC等第三方开源程序。 四...

    PHP框架DoitPHP v1.5 SAE版.zip

    二、简明高效的视图运行机制,使视图文件的开发操作变得简单易行。 三、灵活的扩展模块(module)设计,能够非常容易地调用如:SMARTY、ADODB、CKEDITOR、TINYEDITOR、FPDF、PHPMAILER、PHPRPC等第三方开源程序。 四...

    heron-mvc:多媒体

    heron-mvcnpm install heron...默认是 /lib/controllers, 根是项目启动路径.@params: loadRoute(obj) 会优先加载route里的路由, 也会加载controller obj { route: route名称 router: require返回的router }@params: loa

    joybox:视听媒体插板

    使在同一位置播放来自多个平台的媒体变得简单。 阅读了解更多详情。 建筑学 该项目遵循,是使用和组合在一起的大部分小模块或功能的大集合。 除了一些“全局”或“神奇”的东西,比如本地化函数OLSKLocalized ,模块...

    Tommy framework 1.0.2

    一、开发了框架的辅助开发工具(Tommy tools),使得利用本框架进行程序开发变得更加容易。 二、类似于SMARTY的模板引擎机制,使模板开发简单易行。 三、灵活的MODULE扩展设计,能够非常容易地调用如SMARTY、...

    WindFramework 1.0

    虽然目前的组件库还不算丰富健壮,但是基于这种开发模式,使组件的扩展变得非常的容易。 windframework拥有一个强健的内核,它实现了基于配置的Ioc控制反转技术。开发者只需要简单的配置,就可以实现类的依赖注入,...

    hands-on-rails:通过动手项目尝试 ruby​​ on rails

    Form数据库基础 PostgreSQLMVC 设计模式 Model-View-Controller风格化 Bootstrap Styling闪烁消息 Flash Message邮件发送 Sending EmailUserHub 项目开发流程用户模型 User Model路由概念 Route

    koa-demo:使用koa重建的node服务

    controller文件夹为响应路由的业务逻辑代码 router文件夹为各模块路由 服务文件夹为数据访问业务代码 数据库 连接设置在service> db-config.js 数据库名测试 表名用户 仅有用户名和密码两个分区 测试连接 test.html

Global site tag (gtag.js) - Google Analytics