5、mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...‘html’, ‘css’, ‘javascript’, ‘node.js’] trim: true 去除字符串两边的空格 validate: 自定义验证器 default: 默认值 获取错误信息:error.errors....catch(err => console.log(err, '数据库连接失败')); const postSchema = new mongoose.Schema({ title:...// true 验证成功 // false 验证失败 // v 要验证的值...return v && v.length > 4 }, // 自定义错误信息 message: '传入的值不符合验证规则'
: String, // 必选字段 required: [true, '请传入文章标题'], // 字符串的最小长度 minlength: [2, '文章长度不能小于2'], // // 字符串的最大长度...maxlength: [5, '文章长度最大不能超过5'], // // 去除字符串两边的空格 trim: true }, age: { type: Number, // // 数字的最小范围...// true 验证成功 // false 验证失败 // v 要验证的值 return v && v.length > 4 }, // 自定义错误信息 message: '传入的值不符合验证规则...: 'c1ss', author: 'bd'}) .then(result => console.log(result)) .catch(error => { // 获取错误信息对象 const err...= error.errors; // 循环错误信息对象 for (var attr in err) { // 将错误信息打印到控制台中 console.log(err[attr]['message']
isEqual:此方法支持比较数组、数组缓冲区、布尔值、日期对象、错误对象、映射、数字、对象、正则表达式、集合、字符串、符号和类型化数组。...这里我们迭代每个对象的属性和值,并将它与旧对象进行比较。...如果当前对象的 value 不等于前一个对象中相同属性的值:base[key] 如果该值是对象本身,我们递归调用函数changes 直到它得到一个值,它最终将作为 result[key]=value 存储在...它将 document 转换为 Object()和transform:false是为了不允许转换返回对象。...你还可以通过在架构模型中初始化它来将其用于特定架构。 const mongoose = require('mongoose') mongoose.plugin(require('.
验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败则插入失败。...required: true必传字段 minlength: 3字符串最小长度 maxlength: 20字符串最大长度 min: 2数值最小为2 max: 100数值最大为100...: 默认值 获取错误信息:error.errors['字段名称'].message // 验证规则可以跟两个参数,第二个参数表示自定义错误提示信息 const postSchema = new... // true验证成功 // false验证失败 // v 要验证的值 return...v && v.length > 4; }, // 自定义错误信息 message: '您输入的值不符合验证规则'
验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败则插入失败。...required: true必传字段 minlength: 3字符串最小长度 maxlength: 20字符串最大长度 min: 2数值最小为2 max: 100数值最大为100...: 默认值 获取错误信息:error.errors['字段名称'].message // 验证规则可以跟两个参数,第二个参数表示自定义错误提示信息 const postSchema = new...// true验证成功 // false验证失败 // v 要验证的值 return...v && v.length > 4; }, // 自定义错误信息 message: '您输入的值不符合验证规则'
mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...required: true 必传字段 minlength:3 字符串最小长度 maxlength: 20 字符串最大长度 min: 2 数值最小为2 max: 100 数值最大为...default: 默认值 获取错误信息:error.errors['字段名称'].message // 创建集合规则 const postSchema = new mongoose.Schema(...// true 验证成功 // false验证失败 // v 要验证的值...return v && v.length > 4 }, // 自定义错误信息 message: '传入的值不符合验证规则'
['zhanghao'])) } } 后端node.js文件架构 主要代码: db.js 负责创建数据库中数据表的结构,并连接数据库,为数据表中的键值创建模型。...const mongoose = require('mongoose') //连接mongodb数据库 mongoose.connect("mongodb://localhost:27017/DoList...}) .catch((err) => { console.log("数据库连接失败!"...}); } catch (error) { // 如果发生错误,返回500错误 res.status(500).json({ message: "服务器内部错误"...}); } catch (error) { // 如果发生错误,返回500错误 res.status(500).json({ message: "服务器内部错误" });
下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); const db =...mongoose.connection; db.on("error", () => { console.log("链接失败"); }); db.on("open", () => {...console.log("链接成功"); }); 创建表结构Schema Schema相当于MySql的表结构 通过定义Schema来约束数据的类型,支持以下类型数据 类型 作用 String 定义字符串...Map 约束能用对象的方法描述数据类型 是否必须 是否重复 默认值 等,如下定义了一个用户表结构 注意:如果定义表结构时没有定义_id,mongoose会自己添加一个该字段,该字段不会重复,类型为ObjectId...user.save(); 通过Model.create方法: 通过表构造器的静态方法create自动在表中插入新的数据 该方法可以接收多个插入数据,最后的回调函数参数根据数据量决定 该方法支持两种调用: 错误优先的回调
versionKey 是一个字符串,代表版本号的属性名, 默认值为 __v 如果设置了 timestamps 选项, mongoose 会在你的 schema 自动添加 createdAt 和 updatedAt...,以及字符串和数字的特殊字符。...如果连接失败,尝试用127.0.0.1代替localhost。...mongoose.connect(uri, options, function(error) { // 检查错误,初始化连接。回调没有第二个参数。...在 mongoose 中有两种指定方式,字符串指定和对象形式指定。 字符串指定时在排除的字段前加 - 号,只写字段名的是包含。
通用系统架构,不受语言限制。 例子: 饿了吗接口。 如:接口 restapi/shopping/v3/restaurants?...GraphQL 查询能够遍历相关对象及其字段,使得客户端可以一次请求查询大量相关数据,而不像传统 REST 架构中那样需要多次往返查询。...在 express 中,可以很简单的使用中间件来将请求进行拦截,将没有权限的请求过滤并返回错误提示。 中间件实际上是一个函数,在接口执行之前,先拦截请求,再决定我们是否接着往下走,还是返回错误提示。...我们重启服务器,打开 http://localhost:3000/graphql ,发现页面提示错误了,因为 cookies 中没有含有 auth 字符串。...) => { mongoose.connect(DB_PATH) }) // 连接失败 mongoose.connection.on('error', err =
可以看到免费的集群给我们提供了 512MB 存储、共享的 RAM,这对我们初学者是绰绰有余的,还有一些其它选项可以自主选择,使用默认值也可。 5....创建成功如下所示 图片描述 链接到集群 集群创建好之后如何选择一个集群链接字符串?跟随以下 3 个步骤即可完成。...如果你有答案欢迎和我讨论,另外也建议检查链接字符串和 MongoDB Alats 白名单是否设置的正确。...关于 RESTful 架构的更多理解,可参考阮一峰老师的博客 “理解RESTful架构” www.ruanyifeng.com/blog/2011/09/restful.html REST API 规划...这个错误是因为你已经定义了一个 Schema,之后又重复定义该 Scheme 导致的,错误代码如下所示: module.exports = mongoose.model('Books', BooksSchema
title:String, author:String //new Schema()中传入一个JSON对象,该对象形如 xxx:yyyy , /xxx是一个字符串...,Document也将无法保存 验证并不关心错误类型,而通过ValidationError这个对象可以访问 7.1 验证器 required 非空验证 min/max 范围验证(边值验证) enum/match...}, other:{ type:'String', validate:[validator,err] //validator是一个验证函数,err是验证失败的错误信息...} }); 7.2 验证失败 如果验证失败,则会返回err信息,err是一个对象该对象属性如下 err.errors //错误集合(对象)...//错误消息 一旦验证失败,Model和Entity都将具有和err一样的errors属性 8.Middleware中间件 8.1 什么是中间件 中间件是一种控制函数
同时它也是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以文档的形式存储(文档,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档... db.connection.on("error", function (error) { console.log("数据库连接失败:" + error); }); db.connection.on...—— 是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以Document(以下简称文档)的形式存储(Document,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数...、字符串、日期、数组,甚至是一个嵌套的文档。)...类型为Number,默认为0 time : { type:Date, default:Date.now }, email: { type:String,default:''} }); 基本属性类型有:字符串
= require('mongoose'); // 连接数据库 mongoose.connect('mongodb://localhost/playground', { useNewUrlParser...useUnifiedTopology: true }) .then(() => console.log('数据库连接成功')) .catch((error) => console.log(error, '数据库连接失败...')); 3.创建数据库集合 const mongoose = require('mongoose'); // 创建学生集合规则 const studentsSchema = new mongoose.Schema.../model/user'); // 导入系统模块querystring 用于将HTTP参数转换为对象格式 const querystring = require('querystring'); //...''; req.on('data', param => { formData += param; }); // querystring.parse()方法,能把字符串转换成对象模式
对于UTF-8,dwflags必须为0或者WC_ERR_INVALID_CHARS,否则函数将执行失败并设置错误码ERROR_INVALID_FLAGS,可以调用GetLastError获得错误码;...对于要求此参数为NULL的dwflags而使用此参数,函数将失败返回,并设置错误码ERROR_INVLID_PARAMETER。...如果函数运行失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。...对于UTF-8,dwflags必须为0或者WC_ERR_INVALID_CHARS,否则函数将执行失败并设置错误码ERROR_INVALID_FLAGS,可以调用GetLastError获得错误码;...如果函数运行失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
何为系统架构师? 系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。...系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等 这是百度百科的答案 ---- 大多数人的问题 如何成为一名前端架构师...其实,前端架构师不应该是一个头衔,而应该是一个过程。...如果没有传入状态码,那么默认是500(所以我之前说过,代码要稳定,一定要有显示的指定默认值,要关注代码异常的逻辑,例如前端setLoading,请求失败也要取消loading,不然用户就没法重试了,有可能这一瞬间只是用户网络出错呢...、日志等为公共模块(中间件,前端可能是一个工具函数或组件) 多考虑错误异常的处理,前端也是如此,js大多错误发生来源于a.b.c这种代码(如果a.b为undefined那么就会报错了) 显示的指定默认值
5、如果启动失败,证明上边的操作有误,在控制台输入 sc delete MongoDB 删除之前配置的服务,然后从第一步再来一次。...4.2 Mongoose 的好处 • 可以为文档创建一个模式结构(Schema) • 可以对模型中的对象/文档进行验证 • 数据可以通过类型转换转换为对象模型 • 可以使用中间件来应用业务逻辑挂钩 •... 属性值 toJSON() - 转换为一个 JSON 对象 toObject() 该 Document 对象的方法很常用...用于保护隐私数据) js = doc.toObject(); delete js.address; // console.log(js.id); // 错误...org.junit.Test; public class MyTest { @Test public void testJSON() { // 创建一个 JSON 字符串
这使得它适用于构建高效的后端服务和微服务架构。 生态系统丰富: Node.js拥有庞大而活跃的开源生态系统,包括npm(Node Package Manager)上数以万计的可重用模块。...db.js const mongoose = require('mongoose') //连接mongodb数据库 mongoose.connect("mongodb://localhost:27017...}) .catch((err) => { console.log("数据库连接失败!"...// 在界面上显示相应的消息,告知用户未找到匹配的记录 } }, fail: function(error) { // 请求失败...,处理错误 console.error('请求失败:', error); // 在界面上显示错误信息,告知用户请求失败 } }); }, /
1.安装nest.js脚手架 cnpm i -g @nestjs/cli 2.创建nest项目 nest new 项目名 3.安装mongoose 项目中我们会用到 Mongoose 来操作我们的数据库...,Nest 官方为我们提供了一个 Mongoose 的封装,我们需要安装 mongoose 和 @nestjs/mongoose: npm install mongoose @nestjs/mongoose...它包含一个泛型参数 T,默认值为 unknown,其中包含 code(响应码)、data(响应数据,可选)和 message(响应消息)三个属性。...,处理错误 console.error('请求失败:', error); // 在界面上显示错误信息,告知用户请求失败 } }); }, find_all...,处理错误 console.error('请求失败:', error); // 在界面上显示错误信息,告知用户请求失败 } }); } })
领取专属 10元无门槛券
手把手带您无忧上云