Node.js

导入:使用{{include‘./文件路径’}}可以导入网页,例如:页头和页脚是单独的文件,然后通过模板引擎将它引入。{{include'./header.html'}}//引入页头<div><h1>Hi~</h1></div>{{include'./footer.html'}}//引入页脚继承:1、首先需要创建一个模板文件(layoyt.html),在该文件中留好坑。使用{{block‘名称’}}来留一个坑。{{block'名称'}}<h1>我是h1标题</h1><!--这里可以写也可以不写,写了就是默认内容-->{{/block}}2、然后在子文件中继承这个模板文件,然后填坑(相当于重写)。{{extend'./layout.html'}}<!--继承这个文件-->{{block'名称'}}<!--这里可以重写继承过来的内容-->{{/block}}模板文件:<!DOCTYPEhtml><htmllang="zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><!--模板继承:css开始-->{{block'css'}}{{/block}}<!--模板继承:css结束--></head><body><!--引入页头开始-->{{include'./header.html'}}<!--引入页头结束--><!--模板继承:主体内容开始-->{{block'content'}}{{/block}}<!--模板继承:主题内容结束--><!--引入页脚开始-->{{include'./footer.html'}}<!--引入页脚结束--><!--模板继承:script开始-->{{block'script'}}{{/block}}<!--模板继承:script结束--></body></html>首页:<!--继承layout这个布局-->{{extend'./layout.html'}}<!--该页面的css-->{{block'css'}}<style>body{background-color:aqua;}</style>{{/block}}<!--该页面的主体内容-->{{block'content'}}<div><h1>fda</h1></div>{{/block}}<!--该页面的script-->{{block'script'}}<script>alert("我是index页面");</script>{{/block}}

2021-8-17 63 0
Node.js

在创建集合时,可以设置当前字段的验证规则,验证失败就插入失败。type:传入的数据类型required:必选字段当值为true时,说明该字段是一个必填字段。当值为[true,‘该字段是必填项’]时第一个值为true:开启必填。第二个值:如果该字段没传内容,那么就将这个字符当成错误信息返回。required:[true,'该字段为必选项']required:trueminlength:字符串的最小长度,注意:针对字符串minlength:[2,'字符串最小长度为2']//定义长度和自定义错误信息minlength:2//只定义长度maxlength:字符串的最大长度,注意:针对字符串maxlength:[5,'字符串最小长度为2']//定义长度和自定义错误信息maxlength:5//只定义长度min:数字的最小数,注意:针对数字min:[0,'最小数应为0']min:0max:数字的最大数,注意:针对数字max:[100,'最大数应为100']max:100trim:去除字符串两边的空格trim:trueenum:枚举(是否是数组里面的值,如果是就成功,不是就失败)enum:[0,1]//只能是0或者1default:默认值validata:自定义验证器这个是一个属性,它的值是一个对象。对象中有一个validator属性,它的值是一个函数。函数有一个参数,是v,这个v就是给字段传过来的值。这个函数返回一个boolean类型的值。为true就验证成功,为false就验证失败。在这个对象中,还有一个message属性,如果验证失败,message的值就是错误信息。age:{type:Number,//设置类型//自定义验证器validata:{validator:function(v){//这个v参数可以拿到age字段的值returnv>=0&&v<=100;//条件},message:"传入的年龄不符合规范!";}}unique:唯一索引需要将值设置为true才会生效。在往数据库插入数据时,它会传入的这个数据在数据库中是否已经存在,如果存在就不会插入,并且会报一个错误。age:{unique:true}

Node.js

增删改查操作:0x01添加数据:1、添加数据-通过new的方式:实例.save(function(err,ret){//如果成功:err就是null,如果失败:err就是错误对象。//ret:添加成功的数据});2、添加数据-直接插入(推荐):模型构造函数.create({字段...}).then(function(ret){console.log("插入成功,",ret)//打印添加成功的数据}).catch(function(err){conosle,log("插入失败,",err.message)//打印详情失败信息})0x02查找数据:1、查找数据-显示所有-返回数组:模型构造函数.find(function(){//如果成功:err就是null,如果失败:err就是错误对象。//ret:数据(数组)});2、查找数据-条件查询-返回数组:模型构造函数.find({//返回name为张三的所有数据name:"张三"},function(){//如果成功:err就是null,如果失败:err就是错误对象。//ret:数据(数组)});3、查找一个数据-条件查询-返回对象:模型构造函数.findOne({//返回查到的第一个name为张三的数据,返回的是一个对象name:"张三"},function(err,ret){//如果成功:err就是null,如果失败:err就是错误对象。//ret:数据(对象)});0x03删除数据1、删除数据-删除符合条件的所有数据:模型构造函数.remove({name:"张三"//删除name为张三的所有数据},function(err,ret){});0x04更新数据1、更新数据-根据条件更新所有:模型构造函数.update({name:"张三"},{name:"李四"},function(err,ret){//将所有name为张三的数据,全部更改为李四。});更新数据-更新符合条件的第一个数据:模型构造函数.findOneAndUpdate({name:"张三"},{name:"李四"},function(err,ret){//将查询到第一个name为张三的数据,将name更新成李四});3、更新数据-通过id更新:模型构造函数.findByIdAndUpdate('id',{name:"张三"},function(err,ret){//将这个id的数据中的name字段更改为张三。});

2021-7-11 59 0
2021-7-10 50 0
Node.js

路由模块的提取:简介:可以将路由模块单独放到一个文件内,在app.js中只负责配置等就可以了,而app.get和ap.post等在路由代码放到单独的文件内。配置路由文件:1、首先在路由文件内引入express框架。//引入express框架varexpress=require("express");2、使用express.Router()创建一个路由实例,以后将get或者post等全部挂载到这个路由实例中。varexpress=require("express");//创建路由实例varrouter=express.Router();3、添加get或者post等路由。varexpress=require("express");varrouter=express.Router();//添加路由router.get('/',function(req,res){res.send("get-/");});//...4、将路由实例使用module.exports导出。varexpress=require("express");varrouter=express.Router();router.get('/',function(req,res){res.send("get-/");});//将路由实例导出module.exprots=router;配置app.js文件使用require()引入路由文件。varrouter=require('路由文件');在合适的位置使用app.use(router)挂载路由。这里的router是一个变量,是在require引入路由文件时赋给的变量。案列:app.js文件//导包varexpress=require("express");//引入路由-这里的index.js可以省略,默认找的就是index文件varrouter=require('./routes/index.js');//创建express的实例:appvarapp=express();//挂载路由app.use(router);//创建端口app.listen(3000,function(){console.log("ServerRuning...");});路由文件//导包varexpress=require("express");//创建路由实例varrouter=express.Router();//配置路由router.get('/',function(req,res){res.send("请求的首页/get");});//将router导出module.exports=router;