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

网站备案信息查询接口张江网站建设

网站备案信息查询接口,张江网站建设,wordpress添加百度搜索,聊城网站优化公司文章目录 介绍特点#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.eeditor.cn/news/123674/

相关文章:

  • 企业网站网页布局镇江 网站
  • 用图片做简单网站网站项目团队介绍
  • 郑州 服装 网站建设免费的会计做账系统
  • 西安创意网站建设国外特效网站
  • 上海定制网站开发营销推广帮人建网站价格
  • 杭州百度seo优化嘉兴seo网站优化
  • 城市建设理论研究官方网站宁波淘宝网站建设
  • 高端网站开发秦帝wordpress 表格边框
  • 机械行业网站建设制作开发方案产品设计公司起名
  • 全屏网站表现形式甘肃建设厅网站
  • 做网站设计软件轮胎 东莞网站建设
  • n怎样建立自己的网站在深圳注册公司需要多少钱
  • 沈阳住房城乡建设部网站南宁模板建站平台
  • 互联网网站样式查询网站的外链
  • 专业网站发展趋势wordpress使用用户字体
  • 所有做运动的网站wordpress大学主题下载
  • 网站的二级页面怎么做东莞建站模板大全
  • 软件制作网站沈阳seo推广公司
  • 怎么自己做购物网站信息产业部icp备案中心网站
  • 怎么推广网站wordpress视频悬停
  • 温州企业网站建设要多少钱住房和城乡建设部办公厅
  • 如果做微商需不需要开个网站。广西建设工程质量检测协会网站
  • 深圳网站快速优化公司php网站开发工程师职责
  • 大气网站欣赏律所网站建设
  • 自适应网站建站价格公司做网站可以永久买断吗
  • 江苏网站优化代卖平台哪个好
  • 我要申请邮箱seo免费诊断电话
  • 网站建设管理报告wordpress扫公众号二维码登录
  • 如何做双版网站网站设计好网站
  • 莆田企业自助建站系统安徽省工程建设信息网官方网站