app.js

var express = require('express');
var app = express();
app.use('/',require('./control'));
app.use('/',require('./data'));
app.use('/',require('./logic'));
app.listen(8000);

control.js

/**
 权限层
*/
var router = require('express').Router();

router.get('/',function(req,res,next){
   var group = req.query.group;
   if(group){
      next();
   }else{
      next('无权访问!');
   }
});
module.exports = router;

//如果这里的next(err)里面带有参数,则不会执行后面的路由

db.js

module.exports = {
   getUser(){

    //数据库数据

  },
   getNews(){
      //数据库数据
   }
}

data.js

/**
 数据层
 一般数据层不会直接和数据库挂钩,通常会由和数据库耦合的模块进行处理,然后传递数据
*/
var router = require('express').Router();
var dbs = require('./db');
router.get('/',function(req,res,next){
 console.log('next的值:',next);
 res.locals.name = '老王';
 next();
});
router.get('/info',function(req,res,next){
   dbs.getUser(function(user){
      dbs.getNews(function(news){
         res.locals.user = user;
         res.locals.news = news;
      });
   });
});
module.exports = router;

login.js

/**
 业务层
*/
var router = require('express').Router();

  router.get('/',function(req,res,next){
     var name = res.locals.name;
     var a = parseInt(req.query.a);
     var b = parseInt(req.query.b);
     res.send(name + (a+b));
  });
module.exports = router;

node 分层开发的更多相关文章

  1. C#深入.NET平台的软件系统分层开发

    今天我们来讲讲分层开发,你从标题能不能简单的认识一下什么是分层呢? 不懂也没关系,接下来我来给你讲讲. 第一章 软件系统的分层开发 (1)其实分层模式可以这样定义:将解决方案中功能不同的模块分到不同的 ...

  2. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  3. Linux虚拟机中 Node.js 开发环境搭建

    Node.js 开发环境搭建: 1.下载CentOS镜像文件和VMWare虚拟机程序; 2.安装VMWare——>添加虚拟机——>选择CentOS镜像文件即可默认安装带有桌面的Linux虚 ...

  4. heX——基于 HTML5 和 Node.JS 开发桌面应用

    heX 是网易有道团队的一个开源项目,允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.heX 是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁 ...

  5. 2015年最佳的15个 Node.js 开发工具

    Node.js 越来月流行,这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...

  6. java分层开发

    既然是分层开发,首先我们需要知道的是分为那几个层,并且是干什么的? 1.实体层(entity) 对应数据库中的一张表,有了它可以降低耦合性,同时也是数据的载体. 2.数据访问对象(data acces ...

  7. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 ——持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  8. 推荐近期15个 Node.js 开发工具

    近来Node.js 越来月流行了,这个基于Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些 ...

  9. 用Node.js开发Windows 10物联网应用

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了 ...

随机推荐

  1. web端 调试 手机混合应用中的h5部分(chrome浏览器的devtool使用)

    Learning Hybird App Test–Appium Java(Leyden) 浏览器的远程调试工具,使得我们可以通过PC上开启的控制台,调试手机浏览器中正在运行的代码.运行于 Androi ...

  2. Docker 容器中相关软件安装

    Docker 容器中相关软件安装 1.介绍 我们从docker hub下载的centos镜像是只有很少的命令,需要单独安装我们所需的相关软件. 2.安装软件 安装yum-utils软件包 该软件包是辅 ...

  3. OFFICE_EXCEL_Combine text from two or more cells into one cell.

    Excel   Enter and format data   Layout   Combine text from two or more cells into one cell Combine t ...

  4. Opencv4android的Android Studio环境配置及项目实例下载

    因为软件竞赛的项目会用到Opencv for Android,所以就研究了一下如何在Android Studio上配置Opencv4Android 环境概述: Android Studio 2.3 O ...

  5. ubuntu 更换更新源

    贴上内容来源https://www.cnblogs.com/Alier/p/6358447.html 1  备份原来的更新源 cp /etc/apt/sources.list /etc/apt/sou ...

  6. LeetCodeOJ刷题之14【Longest Common Prefix】

    Longest Common Prefix Write a function to find the longest common prefix string amongst an array of ...

  7. ACM-ICPC(9/25)

    DP专题 记忆化搜索与递推(方式) DAG模型 记忆化搜索: 用d[状态] 的特殊值表示是否计算过. 用vis[状态]是否访问过 DAG模型: 矩形嵌套:d(i) 以 i 结点开始的最长长度,​ 存在 ...

  8. 「bzoj3956: Count」

    题目 刚开始并没有看懂题意于是痛苦的挣扎了好久 题意是这样的 问\([l,r]\)有多少对\((i,j)\)满足\(a_i\)和\(a_j\)恰好是\(a_i...a_j\)中严格最大的两个数 强制在 ...

  9. C# File流操作

    #region 文件读出 private void button1_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenF ...

  10. Android学习笔记_40_系统结构 目录结构

    1.系统结构: 一.应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序.电话拨号程序.图片浏览器.Web浏览器等应用程序.这些应用程序都是用Java语言编写 ...