zoukankan      html  css  js  c++  java
  • node 分层开发

    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;

  • 相关阅读:
    菜鸟解决“子页面关闭刷新父页面局部”问题的历程
    ORACLE基本SQL语句-查询篇
    ORACLE基本SQL语句-添加更新数据函数篇
    ORACLE基本SQL语句-用户及建表篇
    关于JVM
    调用微信支付接口总结
    Oracle入门
    C#使用 SharpAVI进行 屏幕录制
    window 下编译cef 内核 加入mp3/mp4 支持
    python 模块 optparse
  • 原文地址:https://www.cnblogs.com/TomAndJerry/p/9043104.html
Copyright © 2011-2022 走看看