一,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. 多选按钮CheckBox

    main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...

  2. luogu P2761 软件补丁问题

    网络流(x) 状压(√) 初始状态为全1,合法状态为(state&b1)&(state|b1) == state && (state&b2)&(stat ...

  3. 对于strlen()函数的一点小疑问

    看csapp时候,看一下char*[8],以为char*也是一字节,但是指针是地址,64位编译器下是8字节,所以sizeof(B)是64字节 后来又看strlen(). #include"s ...

  4. Git如何修改一个过去的Commit

    假设我的git log 如下: commit 5511533dda6fee6982175fafca1f4bd5692e3d9c (HEAD -> trans, origin/trans) Aut ...

  5. 给服务器做pve系统(可以通过web管理物理机集群资源与虚拟机)

    做此系统前,可以先进入bios,设置一下ipmi的网络地址.可以远程管理服务器 输入服务器的ipmi里面配置的ip 默认账号与密码admin 点击launch 会自动下载认证文件 下载好java软件环 ...

  6. vue 加载静态图片

    <img class="headImg" :src="require('../../assets/uploads/'+headImg)" alt=&quo ...

  7. 最近学习总结 Nodejs express 获取url参数,post参数的三种方式

    express获取参数有三种方法:官网实例: Checks route params (req.params), ex: /user/:id Checks query string params (r ...

  8. Metasploit学习笔记——网络服务渗透攻击

    1.内存攻防技术 1.1缓冲区溢出漏洞机理 1.2栈溢出利用机理 1.3缓冲区溢出利用的限制条件 2.网络服务渗透攻击面 3. Windows服务渗透攻击实战案例——MS08-067安全漏洞 示例代码 ...

  9. 004、Java的多行注释

    代码如下: package TIANPAN; public class TestDemo { public static void main(String args[]) { /* * 我是多行注释 ...

  10. 7.8 Varnish Log