一、mongodb
mongodb查询数据时,find() 和 findById() 的查询结果数据类型不同,findById()查询结果为一条数据,而 find() 的查询结果为一条或多条数据的数组,取这条数据的某个值时需要注意,不能直接以对象取值的方式取值。
// find() [ { _id:123456 , name: "哈哈哈" , icon: "hhhh"} ] // findById() { _id:123456 , name: "哈哈哈" , icon: "hhhh"}
查询数据时可以忽略某些属性,让其查不出来,比如说编辑用户数据时,不要查出密码
let schema =new mongoose.Schema({ username:{type:String}, password:{ type:String, select:false, // 增加该属性则查询时查不出 set(val){ return require('bcryptjs').hashSync( jsencrypt.decrypt(val), 8) // return jsencrypt.decrypt(val) } } });
如果在特定时候需要查询或略的数据时则需要做相应配置,查询时加上要查的属性
.findOne({username}).select('+password')
二、express
三、vuex
四、后端路由
后端路由和前端路由没有关系,前端路由指定跳转到特定组件,后端路由为特定请求地址
后端拆分路由时,拆成的两段路由的parmas值只能在对应的文件中访问(不包括合并url的情况)// 路由文件1 server.use( '/extensive/:resource' , 路由模块) // 子路由文件2 router.get('/:id' , async(req,res)=>{ // 如果请求url为:http://xxx/extensive/goods/123 // 在此函数内无法通过 req.parmas.resource访问goods,只能访问 id })