问题:我试着检查笔记,但出现了这个错误。|
回答:
翻译:疯狂的技术宅 来源:toptal 类型和可测试代码是避免错误的两种最有效方法,尤其是代码随会时间而变化。...Mongoose和MongoDB,以编写集成测试 设置 Node.js 项目 首先,让我们创建一个名为 typescript-bot 的新目录。...然后输入并通过运行以下命令创建一个新的 Node.js 项目: 1npm init 注意:你也可以用 yarn,但为了简洁起见,我们用了 npm。...我们是不是只需要将其复制粘贴到此处,或直接从环境中加载值就可以了呢? 都不是。相反,让我们用依赖注入框架 InversifyJS 来注入令牌,这样可以编写更易于维护、可扩展和可测试的代码。...如果使用 Symbol 来处理这个问题,在有两个具有相同名称的类的情况下,就不会出现这些奇怪的文字。
当然,这个过分的js帮助了我很多,从被后端大佬揪着耳朵按到工位上温声细语的说:“我套完页面样式乱了,帮我调下样式”,演变成大佬气冲冲的跑到我工位慈眉善目的拍着桌子说:“TM接口参数传错了”。...言归正传,再这么贫真就写不下去代码了,随着Node能力的发展,我自己感觉出来自己有点飘了,因为有用Kindle看书的陋习,一直觉的市面上所有的kindle笔记软件都是垃圾?...我忐忑的拨通了电话,在说明了我是小程序的开发者以后,这个人上来就开始说瞎话:“你这个小程序太好了”?...下边内容介绍了3个项目的积累,重点贴一下第三个项目Node用到的代码。共同交流,恳请斧正。 21天体重记录小程序 累计7千用户和每天不超过20个活跃用户的数据,还有3篇实践笔记。...利用jsonwebtoken生成Token,express-jwt进行校验和非必需登录接口检查。 个人认为开发同学都应该深挖一下无状态Token机制与有状态session机制的知识点。
前段时间在开发【葡萄城社区】公众号时有一个功能是需要用网页授权认证地址生成二维码,但类似像下面这样的Url 即便是看也觉得很头疼了https://open.weixin.qq.com/connect/oauth2...现在市面上可用的就是微博的t.cn和一些第三方的生成短链接工具,但这两类工具都有一些使用上的问题,例如:t.cn现在的规则是会出现一个中转页不会直接跳转,而第三方的工具因为是一个公共平台,有时可能会因一些不良信息导致整个平台无法访问...为了高效,我这使用的是node和mongodb,下面我们就来开始动手吧。...因为这个应用我们只有生成和Redirect两个功能,所以这里只有两个页面即可完成所有工作。 ...(result.longUrl); }) 后期大家可以对一些错误异常处理,数据统计等做一些增强,这里就不做补充了。
Dear,大家好,我是“前端小鑫同学”,长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 前言: 作为一个Coder虽然主要在做前端方面的开发,但是为了可以更好的协作开发,还是很有必要学习后端的一些知识...选择Eggjs原因: “Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本。”...= this; ctx.body = '欢迎使用可追溯查询数据提供服务'; } } module.exports = HomeController; 复制代码 接下来试着实现用户的基本操作..., { timestamps: true }); return mongoose.model('Token', TokenSchema); }; 复制代码 还准备了一个公共的BaseController...总结: 这个流程下来,其实涉及的知识点还不少,比如说MongoDB的存取操作,JWT的生成验证,还有统一个数据结构应用的必要等,没有为自己App提供过服务的Coder们,一起来试试吧。
我年轻时注意到,我每做十件事有九件不成功,于是我就十倍地去努力干下去。.../data(这里的 data 是新建需要新建 data 文件夹,在文件夹里创建 db 文件夹) 客户端 C:\MongoDB\bin mongo 注意: 如果出现在 windows 下出现小黑窗口闪退的情况...:'user'}) 在 mongoose 中,提供了 Schema 的类,我们可以在实例化的时候先定义mongoose.Schema,以免后续总是要出现丑陋的new mongoose.Schema()。...支持的基本类型 String Number Date Buffer Boolean Mixed ObjectId Array 其中Mixed和ObjectId是 mongoose 特有的。...new UserModel({ name:"vivo" }) user1.save().then(doc=>{ console.log(doc); }) 最后 本文结束,有什么问题和有错误的地方
集群创建 现在,开始跟随我的脚步,让我们在 5 分钟之内快速创建一个 MongoDB Cluster 已不再是难事了。...v=2 注册成功进入个人中心出现以下页面,选择 Build a Cluster 按钮 创建 Cluster 3. 以下提供了多种选择方案,对于初学者选择左侧免费版创建 4....来搜索,但并没有找到好的解决方案,通过报错大致确认可能是网络和 DNS 的问题,修改 DNS 之后还是没有结果,后来我切换了网络,这个问题解决了。。。...如果你有答案欢迎和我讨论,另外也建议检查链接字符串和 MongoDB Alats 白名单是否设置的正确。...这个错误是因为你已经定义了一个 Schema,之后又重复定义该 Scheme 导致的,错误代码如下所示: module.exports = mongoose.model('Books', BooksSchema
我记得掘金上有人写过一篇文章:《我在一个小公司,我把我们公司前端给架构了》 , (我当时还看成《我把我们公司架构师给上了》) 我面试过很多人,从小公司出来(我也是从一个很小很小的公司出来,现在也没在什么...SpaceX-API 是一个用于火箭、核心舱、太空舱、发射台和发射数据的开源 REST API(并且是使用Node.js编写,我们用这个项目借鉴无可厚非) 为了阅读的舒适度,我把下面的正文尽量口语化一点...字段(项目的依赖,区分线上依赖和开发依赖,我本人是非常看中这个点,SpaceX-API也符合我的观念,严格的区分依赖按照) "main": "server.js", "scripts": {...至于这个麻烦,我这就不解释了(一定要有能看到的默认值,而不是去靠猜) 对于监听端口启动服务以后一些异常统一捕获,并且统一日志记录,process进程退出,防止出现僵死线程、端口占用等(因为node部署时候可能会用...,只要抛出,就会被error中间件处理,直接返回状态码和错误信息.
Model和Entity都有能影响数据库的操作,但仍有区别,后面我们也会做解释 二、新手指引 如果您还不清楚Mongoose是如何工作的,请参看第一章快速通道快速浏览他的用法吧 1....ThingModel(doc,true); //启用严格 var thing2 = new ThingModel(doc,false); //禁用严格 注意: strict也可以设置为throw,表示出现问题将会抛出错误...具体怎么存入都是由Mongoose和MongoDB自己决定,当然,这个属性你也可以去除 new Schema({...}...如果是使用Model创建的对象,传入时一定会将隐藏属性也存入数据库,虽然3.x追加了默认严格属性,但也不必要增加操作的报错 3.4 删除 和新增一样,删除也有2种方式,但Entity和Model都使用...如果子文档在更新时出现错误,将直接报在父类文档中,可以这样处理: ChildrenSchema.pre('save',function(next){ if('x' === this.name
这里,讲师再次推荐了自己的一个课程,鉴于此次购买课程自己不是很满意,这里,我觉得自己补充mongoose的基础知识就够了,总结至:https://www.yuque.com/liugezhou/gofftg.../usr/local/etc/redis.conf 我这里使用 redis-server /usr/local/etc/redis.conf的方式启动redis, 然后出现报错: 接着查找错误...但是尝试了另一个启动命令 redis-server: 成功了! 如图显示这个版本是5.0.8的,也就是说我之前电脑上其实是有redis的,我新安装的这个6.0.9的并没有用上。...,其实我开始的时候直接redis-server启动就可以了。...本地测试: jest + supertest 远程测试: jest + axios 接口测试和单元测试,代码都放在 __test__下,但两者概念要区分开。
如果你有一定经验了,可以直接开始。 在终端上运行这个命令,创建一个新的 NodeJS 应用程序: yarn init 它会询问几个问题,然后初始化应用程序。...也就是说,我们现在可以启动服务器了——但是,我们还没有创建一些有意义的东西。所以,让我们在下一节中解决这个问题。...接下来,我使用类型转换来避免拼写错误,并限制 body 变量与 ITodo 类型匹配,然后基于该模块创建一个新的 Todo。...有了这些,我们现在可以在 DB 中保存 Todo 并返回新增的 Todo 和更新后的 todos 数组。...它们都接受参数,发送请求并得到响应,然后它们会检查请求是否成功并作相应处理。
关于如何处理 node.js 服务连接 MongoDB,我查阅了大量中英文资料,发现并没有太适合我所期望的能力的方案,因此经过一番官方文档的研究,总结了以下的连接 MongoDB 的方法(使用目前 Node.js...: 开发环境下能够打印详细的数据库操作信息 与数据库断开连接后,所有涉及到数据库读写操作的命令均会立即返回错误,而不会等待重连进而造成接口超时 服务启动并成功与数据库建立连接后,如果数据库出现问题造成连接中断...,服务会自动尝试重连直到连接成功 无需手动处理连接数 我们逐条来看每个需求对应的配置: 见注释 A,在开发环境中设置 'debug' 为 true,数据库将会把集合方法和参数打印到控制台。...如果非高级用户,就不要去改变这个参数了。 见注释 D。对于 MongoDB 连接池的问题,建议是不要去手动处理。...当然,这个数字不能设置得过大,MongoDB 默认是一个连接启动一个线程来服务,连接太多线程数切换系统开销会很大。
作为一个新的 Express.js 和 Passport 用户,我第一个要讲的地方将是 passport-local 本身的示例代码,十分感谢 passport 官方提供了一个可以克隆和扩展的 Express.js...然而,上述实践中的 #2 和 #4 与这个全面的教程不符,因此密码令牌本身容易受到认证错误,凭据存储的影响。 幸运的是,由于重置到期,这是有限的使用。...好吧,我们会给出一个简短的凭证教程,但这并不能帮助只是拷贝的开发者。因为更有趣的是,这个教程将这个 mongoose User 对象序列化到 JWT 中。...我喜欢在明文的密码中使用令牌。 现在,任何一个包括存储在 Mongoose 模型甚至过期的令牌都有你的密码。鉴于这个来自HTTP,我可以把它从线上找出来。 下一个教程怎么样呢?...在这一点上,我放弃了阅读。 错误四:限速 如上所述,我没有在任何这些身份验证教程中找到关于速率限制或帐户锁定的问题。
,但宝宝不说 ?...为了让各位小伙伴快速上手,加深对于 mongoose 的了解,我特地结合之前的项目整理了一下关于 mongoose 的一些基础知识,这些对于实战都是很有用的。...这里我主要说一下versionKey和timestamps: versionKey(上文有提到) 是 Mongoose 在文件创建时自动设定的。这个值包含文件的内部修订号。...versionKey 是一个字符串,代表版本号的属性名, 默认值为 __v 如果设置了 timestamps 选项, mongoose 会在你的 schema 自动添加 createdAt 和 updatedAt...mongoose.connect(uri, options, function(error) { // 检查错误,初始化连接。回调没有第二个参数。
深入浅出mongodb(一)和深入浅出mongodb(二)两篇文章讲述了一些安装和使用的基础知识,这篇文章小编将带你走进实战世界,真正体会项目中是怎么使用mongodb开发,让我们一起揭开它神秘的面纱。...安装完成上述指令之后,我们可以检查一下安装的express是否能用 express --version 接着我们就可以创建项目了,在创建项目的时候可以先express -h来查看一下,express命令的参数...所以我们可以通过修改模板引擎的方式创建项目 express backend -e 创建好项目之后,我们express骨架已经搭建好了,我们可以启动项目看一下效果 cd backend npm i npm start 如果出现下面的结果说明我们的启动成功了...这个是包的描述文件,我们主要关注的是scripts和dependencies。...最后 本文结束,有什么问题和有错误的地方,欢迎大家的留言和评论,还有后续更新,下期更加精彩 ???
什么是 GraphQL GraphQL 是一款由 Facebook 主导开发的数据查询和操作语言, 写过 SQL 查询的同学可以把它想象成是 SQL 查询语言,但 GraphQL 是给客户端查询数据用的...GraphQL 中还设计了一套类型系统,在这个类型系统的约束下,可以获得与 TypeScript 相近的相对安全的开发体验。...在本例中,Schema 定义了 name 为 String类型,那么你就不能传 Int类型进去,此时会抛出类型不符的错误。...想象这么一个页面,我要列出两个电影的信息做对比,为了发挥 GraphQL 的优势,我要同时查询这两部电影的信息,在请求体中请求 movie 数据。前面我们说到,请求体决定了返回数据的结构。...GraphQL 的优缺点 优点 所见即所得:所写请求体即为最终数据结构 减少网络请求:复杂数据的获取也可以一次请求完成 Schema 即文档:定义的 Schema 也规定了请求的规则 类型检查:严格的类型检查能够消除一定的认为失误
,Nest 官方为我们提供了一个 Mongoose 的封装,我们需要安装 mongoose 和 @nestjs/mongoose: npm install mongoose @nestjs/mongoose...怎么去理解这个服务提供者呢?...--dev 安装完之后服务就正常重启了。...function(res) { // 请求成功,处理从服务器返回的数据 console.log('服务器返回的数据:', res.data); // 检查是否找到匹配的记录...function(res) { // 请求成功,处理从服务器返回的数据 console.log('服务器返回的数据:', res.data); // 检查是否找到匹配的记录
如果你做的是垃圾,那就没有意义了。首先,是的,显然,你所做的绝大多数都是垃圾,但你不想在你的余生中制造糟糕的软件。你需要平衡创造性的黑客心态和严谨的质量心态。...使用你的错误列表,专注于记忆,以便你在下次尝试时更正错误,并重新做一遍。 我喜欢进行 2~15 分钟的记忆,然后进行 10~45 分钟的尝试,但你会知道你什么时候用完所有知识,需要去获得更多。...我用手指跟踪它,试着在我的脑海里想象它。我想象自己画每个花瓣,茎,和一切东西。我记得比例。我甚至可以使用笔记记录颜色,并尝试在花的房间中混合颜色。 我把所有东西都放在花的房间里。...然后我把画带回画室,并回到花的房间,在下一个回合中,用这个错误列表继续从记忆中学习。 我从这个流程中画出的画,通常相当奇怪,但接近于原件,这取决于我用了多少回合,而且我多长时间练习一次。...将所有信息留在算法房间,走进笔记本电脑的房间,坐下来尝试从记忆中实现它们。在检查你的作品之前,不要花费超过 45 分钟。 带着你的笔记本电脑进入算法房间,并记录你的错误。
我们已经成功的使用了EJS模板的功能,把公共的头部和底部从页面中分离出来了。 并已经引入了bootstrap界面框架,后面讲到“登陆界面”的时候,就会看到bootstrap界面效果了。 6....接下来,我将演示如何通过mongodb来保存session,并实现登陆后用户对象传递。...req.session.error='用户名或密码不正确'; return res.redirect('/login'); } }; 让我们来看看效果: http://localhost:3000/login 输入错误的和密码...我们避免这样的错误发生。 还记录路由部分里说的get,post,all的作用吗?我现在要回到路由配置中,再做点事情。...如果你也出现图片显示的内容,那么恭喜你了。 Nodejs使用Express3.0框架的第一步你已经完成了,并且还使用了ejs,bootstrap,mongoose库的使用。 希望此文对大家有所帮助。
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本...= db.model("test1", TestSchema); Entity —— 由Model创建的实体,使用save方法保存数据,Model和Entity都有能影响数据库的操作,但Model比Entity...(type); }; 建立好基本文件后我们就在app.js中调用使用它:要使用multer和mongoose模块 项目没有,所以我们要安装 ?...= doc.password){ //查询到匹配用户名的信息,但相应的password属性不匹配 req.session.error = "密码错误";...上面那个bson错误的不用管它..我也不知咋处理,听说可以直接 npm install bson 或者 npm update 就行 但我试了貌似没什么效果 ?
----不需要登录校验 获取单个模板信息 ---不需要登录校验 我的模板列表(搜索,分页) 编辑器 设计时分开,但编写代码的时候会和作品管理写在一起,因为都是作品相关的。...查询单个作品信息 保存作品 预览作品 发布作品 发布作品为一个模板 渠道 创建渠道 删除渠道 修改渠道名称 工具类 上传图片 统一的输出格式 { errno:0,// 错误码,无错误则返回 0...mongoose 的时候,会自动创建 id ,createdAt 和 updatedAt ,无需自己手动创建 。...发布时进行内容安全检查。...channel/ service/channel.js cache/works/publish.js test/apis/channel.js PS: 从本节开始就是大量的业务代码的书写,就不记录文章里了,
领取专属 10元无门槛券
手把手带您无忧上云