判断手机还是电脑用户插件及使用
2015-11-04 16:49
465 查看
https://github.com/biggora/express-useragent
1、 app.js
2、 index.js
1、 app.js
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var swig = require('swig'); var conf = require('./conf')(); var routes = require('./routes'); var useragent = require('express-useragent'); var app = express(); // 静态资源和模板被fis构建以后,目录名已发送变化 var inDocker = conf.inDocker; // view engine setup swig.setDefaults({varControls: ['<%=', '%>']}); app.engine('html', swig.renderFile); // view engine setup app.set('views', path.join(__dirname, inDocker ? 'views-dist' : 'dist/views')); app.set('view engine', 'html'); // Swig will cache templates for you, but you can disable // that and use Express's caching instead, if you like: app.set('view cache', false); // To disable Swig's cache, do the following: swig.setDefaults({ cache: false}); // NOTE: You should always cache templates in a production environment. // Don't leave both of these to `false` in production! // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev'));+ app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); if (inDocker) { app.use("/public", express.static(path.join(__dirname, 'public-dist'))); } else { console.info("not in docker.."); app.use(require('stylus').middleware({src: path.join(__dirname, ''), compress: true})); app.use("/public", express.static(path.join(__dirname, 'dist/public'))); } app.use(useragent.express()); app.use('/', routes); // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('mobile/error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('mobile/error', { message: err.message, error: {} }); }); module.exports = app;
2、 index.js
var express = require('express'); var app = require('../app'); var router = express.Router(); /* GET home page. */ router.get('/mobile-intro', function(req, res, next) { // console.info(req.useragent); if(req.useragent.isMobile == true){ res.render('mobile/index', { title: '积木盒子' }); }else{ res.render('desktop/index', { title: '积木盒子' }); } }); router.get('/Status/Version', function(req, res) { var envs = { 'APP_NAME': process.env.APP_NAME || '', 'ENV_NAME': process.env.ENV_NAME || '', 'CODE_VER': process.env.CODE_VER || '', 'BUILD_TIME': process.env.BUILD_TIME || '', 'HTTP_PORT': process.env.HTTP_PORT || '' }; res.status(200).send(envs); }); module.exports = router;
相关文章推荐
- Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改
- 微信浏览器禁止app下载链接怎么办
- java的继承的宗旨
- C语言文法
- 结构体内存对齐及大小的判断
- java 以追加形式写txt文件
- Z扫描和光栅扫描(HEVC)
- Oulipo
- mysql mysql的innodb_flush_log_at_trx_commit参数深有体会
- shell 的位置参数
- Java 编程的动态性,第 5 部分: 动态转换类
- linux配置java环境变量(转)
- java写txt文件
- 《我的心曾悲伤七次》
- [ahk]AutoHotkey从EXCEL 获取单元格内容
- java 获取weblogic 的状态
- 背包问题
- eclipse 常用快捷键
- node.js在执行js文件时出现SystaxError:Unexpected identifier的错误??
- Disable Maven Nature