当前位置: 首页 > news >正文

网站备案信息查询接口山东网站建设代理

网站备案信息查询接口,山东网站建设代理,手机网站开发目的,做的网站.如何在局域网内访问文章目录 介绍特点#xff1a;Mongoose 使用#xff1a;创建项目并安装#xff1a;连接到 MongoDB#xff1a;定义 Schema#xff1a;创建模型并操作数据库#xff1a;创建文档#xff1a;查询文档#xff1a;更新文档#xff1a;删除文档#xff1a;使用钩子#x… 文章目录 介绍特点Mongoose 使用创建项目并安装连接到 MongoDB定义 Schema创建模型并操作数据库创建文档查询文档更新文档删除文档使用钩子Hooks数据验证使用虚拟属性Virtuals设置选项 介绍 Mongoose 是一个 MongoDB 对象模型库ODM它为 Node.js 应用程序提供了一个直白、简洁和富有表现力的数据建模工具. 特点 Mongoose 通过定义模型Model这些模型对应于 MongoDB 中的集合Collection。Mongoose 通过定义结构Schema你可以指定集合中文档Document的结构和类型。Mongoose 提供了强大的数据验证机制确保在保存到数据库之前数据符合预定义的模式和规则。Mongoose 允许你在数据保存或查询之前或之后执行中间件这可以用来执行如数据加密、日志记录等操作。Mongoose 支持虚拟属性这些属性在 MongoDB 中不存储但可以在应用层使用常用于计算字段或隐藏某些字段。Mongoose 提供了多个生命周期钩子如 save、validate、index 等允许你在文档的生命周期中的特定点执行自定义代码。 Mongoose 使用 api 使用操作详见上一篇文章 先介绍下 mongoose 的一些概念、然后以常见功能开发来举例实现一些 api 介绍如子文档嵌套、关联查询、查询密码隐藏、默认值设置、MD5 加密、文档数组更新 创建项目并安装 在 Node.js 项目中你可以通过 npm 来安装 Mongoose , crypto-js包方便我们进行密码的加密,也可以用 node 自己的 crypto mkdir mongoose-demo cd mongoose-demopnpm initpnpm init mongoose crypto-js 连接到 MongoDB 创建 main.js在文件中引入 mongoose 调用其 connect 进行连接,可使用用户名密码或直接连接 // 直连 await mongoose.connect(mongodb://127.0.0.1:27017/test) // 添加用户认证 await mongoose.connect(mongodb://root:123456localhost:8017/test?authSourceadmin)const mongoose require(mongoose)const connect async () {try {db await mongoose.connect(mongodb://root:123456localhost:8017/test?authSourceadmin)console.log(Connected to MongoDB)} catch (error) {console.log(error.message)} } // 调用 connect()定义 Schema 在这里使用 Schema 定义 MongoDB 集合的结构在这里我们定义一个用户结构 UserSchema 和地址结构(AddrSchema) 这里使用 default设置字段默认值使用select来设置在 find 和 findOne的返回结构中是否展示避免将密码等敏感字符暴露出接口 使用set方法在数据保存进库之前进行一些操作如加密 使用 ref 来进行嵌套子文档查询这里的user是 model 的名称不是 Schema 这里我们使用 children 来进行一对多的查询 const UserSchema new mongoose.Schema({name: String,age: String,phone: {type: String,default: 1848****222 // 设置默认值},password: {type: String,// select: false,set: val {return Crypto.MD5(val)}},children: [{type: mongoose.Schema.Types.ObjectId,ref: addr}] }) const AddrSchema new mongoose.Schema({province: String,city: String,area: String,detail: String,user_id: { type: mongoose.Schema.Types.ObjectId, ref: user } })创建模型并操作数据库 将 Schema 编译成 Model用于操作数据库 const userModel mongoose.model(user, UserSchema, users) const addrModel mongoose.model(addr, AddrSchema, addrs)创建文档 使用模型创建文档即数据库中的记录, 创建add方法来实现 新增操作 const add async (name, password) {try {let user new userModel({ name, password })let _user await user.save()console.log(用户保存成功, _user)let addr new addrModel({province: 四川,city: 成都,area: 高新,user_id: _user._id})let _addr await addr.save()console.log(地址保存成功, _addr)let update await userModel.updateOne({ _id: _user._id }, { $push: { children: _addr._id } })console.log(更新成功, _user._id, _addr._id, update)} catch (error) {console.log(error)} }const connect async () {try {db await mongoose.connect(mongodb://root:123456localhost:8017/test?authSourceadmin)console.log(Connected to MongoDB)// 在這裡添加操作add(ziyu, ziyu)} catch (error) {console.log(error.message)} }查询文档 查询数据库中的文档,新增 query方法这里用到一个populate方法 Mongoose 的 populate 功能 ‌ 是一种用于填充引用字段的方法它允许我们在查询结果中获取关联文档的详细信息。使用 populate 方法可以将关联字段的引用值替换为实际的对象值从而方便地获取关联对象的详细信息。 // find() // 默认查询全部 // findOne() // 查询一个const query async () {let findUser await userModel.findOne({ name: /ziyu/ }).populate(children).exec()console.log(查询用户, findUser)// let findUser await addrModel.find({}).populate(user_id).exec();// console.log(查询地址, findUser); }更新文档 更新数据库中的文档, 创建update方法 const update async () {try {let update await userModel.updateOne({ _id: 675fd59091847b07acc95fbc }, { $push: { children: 675fd5b7d62dd41f6e8d88c4 } })console.log(更新成功, update)} catch (error) {console.log(error)} }删除文档 从数据库中删除文档 const update async () {try {await userModel.deleteOne({ name: jty })console.log(删除成功, update)} catch (error) {console.log(error)} }使用钩子Hooks Mongoose 允许你在文档的生命周期中的特定点执行代码例如在保存前加密密码 userSchema.pre(save, function (next) {this.password Crypto.MD5(this.password)next() })数据验证 Mongoose 提供了强大的数据验证功能确保保存到数据库的数据是有效的userSchema.path(email).validate(function (value) {return validator.isEmail(value) }, Invalid email)使用虚拟属性Virtuals 虚拟属性允许你定义不存储在 MongoDB 中的属性但可以在查询时使用schema.path(name).get(function (v) {return v is my name }) schema.set(toJSON, { getters: true })设置选项 Mongoose 提供了多种选项来自定义模型的行为例如 strict、typeKey 和 validateBeforeSavecosnt schema new UserSchema({// ...},{ strict: true, typeKey: $type, validateBeforeSave: false } )
http://www.dnsts.com.cn/news/20082.html

相关文章:

  • 玩具网站设计产品展示网站源码php
  • 传媒网站建设国内跨境电商平台有哪些?
  • 中文网站建设公司基于php的图书管理系统论文
  • 往网站上传照片怎么做h5网页版制作
  • 什么是网站模板长春网站建设长春
  • 做网站客源wordpress关键词内链插件
  • 专业网站构建苏州网站设计公司
  • 虚拟主机能建设网站吗网站后台登陆显示验证码错误
  • 网站域名备案查询什么网站可以做告白的网页
  • 如何建手机销售网站网站设计是什么
  • 河北邢台企业做网站沧州做网站最好的公司
  • 个人网站模板素材津南区网络推广公司
  • 刘淼 网站开发用户研究 网站
  • 常州城乡建设局网站首页东莞seo托管
  • 一站式装修平台怎么学会建自己网站的方法
  • 没有网站也可以做cpa恢复网址
  • 网站公司倒闭flash 网站头部
  • 湛江有没有做网站的公司建设网站多少钱
  • 快速生成网站程序公司建站网站
  • 大学网站开发模板免费下载拍摄视频制作的广告公司
  • 建站群赚钱有前途吗青岛建站推广
  • 无锡做网站公司多少钱石家庄专门做网站
  • 网页制作与网站建设宝典 pdf在网站做的pdf有水印如何删除
  • 做网站产品搜索展示实现提供手机网站建设哪家好
  • 中国建设投资集团 网站首页微信小程序怎么批量删掉
  • 网站安全检测怎么关掉惠州网站制作案例
  • 网站换空间的流程网站编辑做图片用什么不同
  • 网站开发文档是什么概念如何搭建免费网站
  • 企业网站推广建议html网站模板免费
  • 合肥快速做网站中企动力建设网站怎么样