• nodejs项目中的路由写法


     1 //两种路由写法,一种封装成函数,返回结果,此种方法可以传递参数,
     2 "use strict";
     3 var _ = require("lodash");
     4 var express = require('express');
     5 var router = express.Router();
     6 var thenjs = require('thenjs');
     7 
     8 module.exports = function(utils) {
     9 
    10     //* 广告 API */
    11     router.get('/api/ads/:type', function (req, res) {
    12         res.setHeader("Expires", new Date(Date.now() + 60 * 60 * 1000 * 2).toUTCString());
    13         var start = utils.moment().startOf('day');
    14         var end = utils.moment().endOf('day');
    15 
    16         // 有时间限制且在时间限制内, 或者无时间限制的广告
    17         var or = [{start: {'$gte':start}, end: {'$lte': end}}, {start: {$exists: false}, end: {$exists: false}}, {start: null, end: null}];
    18         Ad.find({type:req.params.type}).or(or).sort('-start position').exec(function(err, ads) {
    19             res.json({items:ads});
    20         });
    21     });
    22 
    23     return router;
    24 };
    25 
    26 //第二种写法:
    27 var express = require('express');
    28 var router = express.Router();
    29 
    30 // 该路由使用的中间件
    31 router.use(function timeLog(req, res, next) {
    32     console.log('Time: ', Date.now());
    33     next();
    34 });
    35 // 定义网站主页的路由
    36 router.get('/', function(req, res) {
    37     res.send('Birds home page');
    38 });
    39 // 定义 about 页面的路由
    40 router.get('/about', function(req, res) {
    41     res.send('About birds');
    42 });
    43 
    44 module.exports = router;
    45 
    46 //第二种明显不能传递参数,
    47 
    48 //第一种比较巧妙,将全局都用到的变量收集到名为utlis的对象中;
    49 //模块再封装时,传入一个对象形参,完成功能配置;
    50 //将此页面引入到app.js中将参数传入进去,完成功能;
    坚持下去就能成功
  • 相关阅读:
    深入理解虚拟机、容器和Hyper技术
    Hyper:基于Hypervisor的容器化解决方案
    iSCSI 在Linux下的模拟实验
    C-RAN
    spring mvc
    DUBBO
    ajax跨域请求 小栗子 jsonP
    freemarker 页面静态化 简单小栗子
    ajax上传图片监听
    代码优化 粘贴
  • 原文地址:https://www.cnblogs.com/suoking/p/4988790.html
Copyright © 2020-2023  润新知