一,router/admin.js

var express = require('express')
var router = express.Router()
var User = require('../models/User')
/** 验证用户是否为管理员 ,防止其他用户通过 /admin 路径访问 */
router.use((req, res, next) => {
if (!req.userInfo.isAdmin) {
res.send('对不起,你不是管理员,不能进入')
return
}
  next()
})
/** 首页 */
router.get('/', (req, res) => {
console.log(('admin ---- req.userInfo 数据 :' + JSON.stringify(req.userInfo)).yellow)
  res.render('admin/index', {
  userInfo: req.userInfo
})
})
/** 用户管理 */
router.get('/user', (req, res) => {
/**通过类或构造函数的方法读取 => 所有用户的信息 */
User.find().then((users) => {
  console.log((' 所有用户 : ' + users).red)
/**
*
* 【 重点 : 数据到模板的传输 】
*
* 不要删除 userInfo , 会影响到cookie .
*
* 在数据中添加 users 即可
*/
res.render('admin/user', {
  userInfo: req.userInfo,
  users:users
})
  })
// 错误的示例
// res.render('admin/user', {
//    users: req.userInfo
// })
})
module.exports = router
 
二, /views/admin/user.html
{% extends 'layout.html' %}
{% block main %}
<ol class="breadcrumb">
<li><a href="/admin">管理首页</a></li>
<li><span href="/user">用户列表</span></li>
</ol>
<h3>用户列表</h3>
<table class="table table-bordered">
<tr>
<th>用户名</th>
<th>id</th>
<th>密码</th>
<th>是否是管理员</th>
</tr>
<!-- 循环输出数组 . id是对象,需要转换成字符串 -->
 
{% for user in users %}
<tr>
<td> {{user.username}}</td>
<td> {{user._id.toString()}}</td>
<td> {{user.password}}</td>
{% if user.isAdmin %}
<td> 管理员 <td>
{% else %}
<td> 普通用户</td>
{% endif %}
</tr>
{% endfor %}
 
</table>
{% endblock %}

14 ~ express ~ 显示用户数据的更多相关文章

  1. Easyui Datagrid 如何实现后台交互显示用户数据列表

    转自:https://blog.csdn.net/Tomsheng321/article/details/50722571?utm_source=blogxgwz9 新手初学的时候可能有个疑问:如何在 ...

  2. wordpress教程之the_author_meta()显示用户的信息

    描述 模板标签函数the_author_meta可以显示用户数据.如果该函数在文章主循环(Loop)中,则不必指定作者的ID值,标签所显示的就是当前文章作者的内容.如果在主循环(Loop)外,则需要指 ...

  3. 15 ~ express ~ 用户数据分页原理和实现

    一,在后台路由 /router/admin.js 中 1,限制获取的数据条数 : User.find().limit(Number) 2,忽略数据的前(Number)条数据 : skip(Number ...

  4. C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据

    我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的open ...

  5. [译] 使用Using Data Quality Services (DQS) 清理用户数据

    SQL Server 2012 Data Quality Services (DQS)  允许你使用自己的知识库来清洗数据. 在本文中我会展示一个简单示例. 使用DQS清理步骤如下: A. 建立DQS ...

  6. [ios3-地图] 如何在iOS地图上高效的显示大量数据 [转]

    [转至:http://blog.csdn.net/pjk1129/article/details/17358337] 原文:How To Efficiently Display Large Amoun ...

  7. 04: Form 验证用户数据 & 生成html

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  8. Android用surface直接显示yuv数据(三)

    本文用Java创建UI并联合JNI层操作surface来直接显示yuv数据(yv12),开发环境为Android 4.4,全志A23平台. package com.example.myyuvviewe ...

  9. Qt 学习之路 2(14):对话框数据传递

    Home / Qt 学习之路 2 / Qt 学习之路 2(14):对话框数据传递 Qt 学习之路 2(14):对话框数据传递  豆子  2012年9月15日  Qt 学习之路 2  53条评论 对话框 ...

随机推荐

  1. C语言学习从入门到精通书籍,10万读者都认可

    C语言程序设计从入门到精通 10万读者认可的编程图书精粹 零基础自学编程的入门图书 详解C语言编程思想和核心技术 很多初学者,对C语言.c++的概念都是模糊不清的,C语言.c++是什么,能做什么,学的 ...

  2. MVC5仓库管理系统

    下载

  3. zabbix WebUI自定义Nginx监控项模板

    zabbix webUI自定义Nginx监控项模板 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建模板 1>.如下图所示,依次点击"配置" --- ...

  4. flutter如何使用配置文件pubspec.yaml(位于项目根目录)来管理第三方依赖包

    官方文档 在软件开发中,很多时候有一些公共的库或SDK可能会被很多项目用到,因此,将这些代码单独抽到一个独立模块,然后哪个项目需要使用时再直接集成这个模块,便可大大提高开发效率.很多编程语言或开发工具 ...

  5. 记一次Redis+Getshell经验分享

    前言: 当我们接到一个授权渗透测试的时候,常规漏洞如注入.文件上传等尝试无果后,扫描端口可能会发现意外收获. 知己知彼乃百战不殆,Redis介绍: 简单来说 redis 就是一个Key-Value类型 ...

  6. 019、Java中定义字符

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  7. javascript判断数组是否包含了指定的元素

    jQuery写法: var arr = [ "xml", "html", "css", "js" ]; $.inArra ...

  8. leetcode1302 Deepest Leaves Sum

    """ Given a binary tree, return the sum of values of its deepest leaves. Example 1: I ...

  9. Netty 异步模型

    简介 Netty中的 I/O 操作是异步的, 包括 Bind.Write.Connect 等操作会简单的返回一个ChannelFuture. 调用者不能立刻获得结果, 而是通过Future-Liste ...

  10. c# 外挂操作(内存操作)(内存读写取窗口句柄移动窗口取模块地址)工具类

    来源于网上  参考 https://www.cnblogs.com/fuhua/p/5877781.html 等众多文章 详情取看我第二个例子封装功能较多 https://www.cnblogs.co ...