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中将参数传入进去,完成功能;
时间: 2024-08-08 03:48:35

nodejs项目中的路由写法的相关文章

如何在NodeJS项目中优雅的使用ES6

如何在NodeJS项目中优雅的使用ES6 NodeJs最近的版本都开始支持ES6(ES2015)的新特性了,设置已经支持了async/await这样的更高级的特性.只是在使用的时候需要在node后面加上参数:--harmony.但是,即使如此node也还是没有支持全部的ES6特性.所以这个时候就需要用到Babel了. 现在开始Babel 在开始使用Babel之前,假设 1. 你已经安装了nodejs,并且已经熟悉了Js. 2. 你也可以使用npm安装各种依赖包. 3. 而且你也对ES6(后来改为

在WebStorm环境中给nodejs项目中添加packages

照前文 http://www.cnblogs.com/wtang/articles/4133820.html  给电脑设置了WebStorm的IDE的nodejs开发环境.新建了个express的网站项目.想给网站增加数据库功能,于是需要导入一个包(packages).在nodejs中操作mongodb很方便的包是mongoose.那么在WebStorm中添加包的方法是 我的WebStorm的版本是8.0.3,在File->Settings->(Project Settings[项目名]) N

如何在Vue项目中给路由跳转加上进度条

1.前言 在平常浏览网页时,我们会注意到在有的网站中,当点击页面中的链接进行路由跳转时,页面顶部会有一个进度条,用来标示页面跳转的进度(如下图所示).虽然实际用处不大,但是对用户来说,有个进度条会大大减轻用户的等待压力,提升用户体验.本篇文章就来教你如何在Vue项目中实现这样的进度条. 2.安装Nprogress 虽然我们也可以自己手动实现这样的功能,但是,nprogress.js已经帮我们把进度条的样式呀,功能呀都已经封装的很好了,既然有现成的轮子,我们就直接使用轮子就好啦! npm inst

Vue 项目中对路由文件进行拆分(解构的方法)

项目需求场景: 在开发项目过程中,在项目过于庞大,路由信息非常多的情况下,如果将路由配置信息都放在一个文件里面,那么这个JS是不方便维护的, 那么,这个时候需要我们把这个庞大的路由文件,根据项目功能分类,拆分为几个不同的路由文件. 实现步骤: 1.不管你拆分为几个,最后都是要整合到一个js文件里面的, 2.比如你建立了两个文件夹,分别为router,router2,里面都有一个index.js,其中router为主文件夹,在里面的index.js中引入外部配置的路由信息 3.在router2中的

如何编写package.json配置NodeJS项目的模块声明

在NodeJS项目中,用package.json文件来声明项目中使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行 npm install 命令即可安装所需要的模块. package.json文件中可配置的项有:名称(name).应用描述(description).版本号(version).应用的配置项(config).作者(author).资源仓库地址(repository).授权方式(licenses).目录(directories).应用入口文件(main)

OSGI项目中获取文件路径

如果想根据给定的文件名称创建一个File实例,你可能会这么写: File file = new File(当前类.class.getResource("config").toURI()); 但是在osgi项目中,这种写法会报异常,异常信息是URI scheme is not "file",原因是osgi中采用的是bundleresources协议的URL,得到的URI中包含了"bundleresource://165xxxxxxxx/"前缀,所以

【Nodejs项目手记】Nodejs中使用图片验证码,captchapng模块可以解决Nodejs图片验证码

Nodejs项目,在做图片验证码的时候遇到了难题.Nodejs没有图片库,以后会有,但是现在没有. 网络上搜索一圈,有几个解决方案: 1.采用第三方验证码程序,有的时候,项目可能不允许: 2.使用Java或者PHP生成图片,Nodejs调用,中间采用Redies共享: 这两种方式都不太理想,好在终于找到了可以支持Nodejs图片验证码的一个库,虽然只支持数字,但是也还不错.原理是使用Base64的图片编码方式. 这个库的Gighub地址是:https://github.com/GeorgeCha

Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题

最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: ? 1 express -t ejs microblog 可是执行后,仍旧创建的是jade项目. 原来,express3.x,express4.x中创建ejs命令更新为: express -e microblog //即ejs,-j(即jade)  当然,最直接的,你也可以修改package.json里的定义来实现安装ejs. PS:建立工程过程 1.必须得安装expre

github air项目中遇到的几个问题及解决(nodejs居多)

https://github.com/cambecc/air 1.按照github中给出的步骤,执行到npm install,项目中的package.json包含了要安装的包的版本,但是安装的时候,pg和iconv模块提示gyp rebuild错误,一开始怀疑版本的问题(卸载nodejshttp://www.cnblogs.com/snandy/p/4418615.html,然后下载你所需的版本),但是把版本调整到package.json提示的版本还是不行,于是重新clone一份,把packag