前端学习(1407):多人管理27代码优化

// 创建用户集合
// 引入mongoose第三方模块
const mongoose = require('mongoose');
// 导入bcrypt
const bcrypt = require('bcryptjs');
// 引入joi模块
const Joi = require('joi');
// 创建用户集合规则
const userSchema = new mongoose.Schema({username: {type: String,required: true,minlength: 2,maxlength: 20},email: {type: String,// 保证邮箱地址在插入数据库时不重复unique: true,required: true},password: {type: String,required: true},// admin 超级管理员// normal 普通用户role: {type: String,required: true},// 0 启用状态// 1 禁用状态state: {type: Number,default: 0}
});// 创建集合
const User = mongoose.model('User', userSchema);async function createUser() {const salt = await bcrypt.genSalt(10);const pass = await bcrypt.hash('123456', salt);const user = await User.create({username: 'iteheima',email: 'itheima@itcast.cn',password: pass,role: 'admin',state: 0});
}//createUser();// 验证用户信息
const validateUser = user => {// 定义对象的验证规则const schema = {username: Joi.string().min(2).max(12).required().error(new Error('用户名不符合验证规则')),email: Joi.string().email().required().error(new Error('邮箱格式不符合要求')),password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/).required().error(new Error('密码格式不符合要求')),role: Joi.string().valid('normal', 'admin').required().error(new Error('角色值非法')),state: Joi.number().valid(0, 1).required().error(new Error('状态值非法'))};// 实施验证return Joi.validate(user, schema);
}// 将用户集合做为模块成员进行导出
module.exports = {User,validateUser
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java enumerator_NSEnumerator使用

集合类(如:NSArray、NSSet、NSDictionary等)均可获取到NSEnumerator, 该类是一个抽象类,没有用来创建实例的公有接口。NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。例…

前端学习(1408):多人管理28用户信息展示

userpage.js // 导入用户集合构造函数 const { User } require(../../model/user);module.exports async (req, res) > {// 接收客户端传递过来的当前页参数let page req.query.page || 1;// 每一页显示的数据条数let pagesize 10;// 查询用户数据的总数let count awa…

java c3p0获取主键_Tomcatc3p0配置jnid数据源2种实现方法解析

使用c3p0导入c3p0jar包com.mchangec3p00.9.5.2在tomcat的context.xml文件加入数据源配置auth"Container"description"DB Connection"driverClass"com.mysql.jdbc.Driver"maxPoolSize"100" minPoolSize"2"acquireIncrement&q…

前端学习(1409):多人管理29安装json转换工具

json转换工具 打开谷歌 chrome://flags/#extensions-on-chrome-urls

让struts2和servlet共存

由于struts2默认的是拦截全部的请求 由配置文件能够看出 <filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping…

php sslbug,PHP错误抑制符(@)导致引用传参失败Bug的分析

看下面的例子:$array array(1,2,3);function add (&$arr) {$arr[] 4;}add($array);print_r($array);/**此时, $array没有改变, 输出:Array([0] > 1[1] > 2[2] > 3)*/add($array);print_r($array);/**不使用错误抑制的情况下, 输出正常:Array([0] > 1[1] >…

前端学习(1410):多人管理30数据分页

// 导入用户集合构造函数 const { User } require(../../model/user);module.exports async (req, res) > {// 接收客户端传递过来的当前页参数let page req.query.page || 1;// 每一页显示的数据条数let pagesize 10;// 查询用户数据的总数let count await User.count…

MongoDB分析工具之三:db.currentOp()

db.currentOp() db.currentOp是个好东西&#xff0c;顾名思义&#xff0c;就是当前的操作。在mongodb中可以查看当前数据库上此刻的操作语句信息&#xff0c;包括insert/query/update/remove/getmore/command等多种操作。直接执行 db.currentOp()一般返回一个空的数组&#xff…

php 添加样式,添加样式到php html电子邮件

我仔细查看了这个问题,我在此发现的是添加以下内容&#xff1a;$headers MIME-Version: 1.0 . "\r\n";$headers . Content-type: text/html; charsetiso-8859-1 . "\r\n";和我想发送一个时事通讯类型的电子邮件,所以造型真的很重要.我观看的所有视频都只是…

前端学习(1411):多人管理31数据分页2

{{extend ./common/layout.art}}{{block main}}<!-- 子模板的相对路径相对的就是当前文件 因为它是由模板引擎解析的 而不是浏览器 -->{{include ./common/header.art}}<!-- 主体内容 --><div class"content">{{include ./common/aside.art}}<d…

软件推广

新闻是按照日历来做主导的&#xff0c;如果做的东西也和最近发生的事情有关的话&#xff0c;契合节假日&#xff08;突然想到春运&#xff09;&#xff0c;曝光率会增加在制作软件的同时就要考虑到如何推广。国内的视频公司在视频前的广告和适合做软件推广。新电影上映&#xf…

php按城市显示搜索结果,搜索结果页(通过数据库搜索)

_z2yJxW">本文档讲的是如何通过直接通过数据库搜索接口模板显示搜索结果页。接口&#xff1a;akcms_page.php一 首先在网站根目录创建一个php文件&#xff0c;文件名随便起比如&#xff1a;db_search.php&#xff0c;内容是&#xff1a;$template search.htm;include …

前端学习(1412):多人管理32修改

const { User } require(../../model/user);module.exports async (req, res) > {// 获取到地址栏中的id参数const { message, id } req.query;// 如果当前传递了id参数if (id) {// 修改操作let user await User.findOne({_id: id});// 渲染用户编辑页面(修改)res.rende…

真正能成功的人,不见得是最聪明的,也小见得是学历最高的,而是最能面对问题、锲而不舍的人。...

要知道&#xff0c;这世界上真正能成功的人&#xff0c;不见得是最聪明的&#xff0c;也小见得是学历最高的&#xff0c;而是最能面对问题、锲而不舍的人。 爸爸以前有个同学&#xff0c;追班上一个女生。这男生很不会说话&#xff0c;他开门见山就对女生讲“我爱你”。 那女生…

前端学习(1413):多人管理33修改2(未能完结)

// 引用expess框架 const express require(express); // 创建博客展示页面路由 const admin express.Router();// 渲染登录页面 admin.get(/login, require(./admin/loginPage));// 实现登录功能 admin.post(/login, require(./admin/login));// 创建用户列表路由 admin.get(…

redis php 性能测试工具,redis性能测试与客户端连接详解

Redis 性能测试(推荐&#xff1a;redis入门教程)语法redis-benchmark [option] [option value]实例实例一以下实例同时执行 1000 个请求来检测性能&#xff1a;$ redis-benchmark -n 1000 -qps: 本地 docker 暂时不支持命令。结果跳过&#xff0c;请自行测试。redis:6379> b…

前端学习(1415):ajax的运行环境

// 引用expess框架 const express require(express); // 处理路径 const path require(path);// 创建网站服务器 const app express();app.use(express.static(path.join(__dirname))); // 监听端口 app.listen(3000); console.log(网站服务器启动成功, 请访问localhost)

Selenium Webdriver ie 浏览器

webDriver 在测试ie 的时候会遇到很多的问题&#xff0c;记录下&#xff1a; 1.需要ie的driver驱动 需要下载 IEDriverServer.exe 并把这个驱动放在系统ie 的文件夹下 C:\Program Files\Internet Explorer 2.启动selenium 的时候需要将浏览器安全设置给取消掉 3.启动的时候还…

SharePoint 跨域还原网站一则

博客地址&#xff1a;http://blog.csdn.net/foxdave源端&#xff1a;执行PowerShell命令备份网站集Backup-SPSite http://server_name/sites/site_name -Path C:\Backup\site_name.bak目的端&#xff1a;执行PowerShell命令还原网站集Restore-SPSite http://server_name/sites/…