最近在学习ES6的相关知识,看完了Promise,于是打算用Promise实现一个原生JS的Ajax例子,顺便复习一下Node的相关知识。...function(req, res) { console.log(req.body); res.status(200), res.json(data) }); 在代码中写了两个处理请求的方法...: /gettest:处理get请求 /posttest:处理post请求 代码挺简单的,就不一一解释了。...写的Ajax的POST请求,GET请求就不写了。...Promise还是挺好用的。 运行结果 ?
异步生成器函数与异步函数和生成器函数的不同之处在于,它们不返回 promise 或迭代器,而是返回一个异步迭代器。...你的第一个异步生成器函数 异步生成器函数的行为类似于生成器函数:生成器函数返回一个具有 next() 函数的对象,调用 next() 将执行生成器函数直到下一个 yield。...不同之处在于异步迭代器的 next() 函数返回了一个 promise。 下面是带有异步生成器功能的 “Hello, World” 例子。...请注意,以下脚本不适用于 Node.js 10.x 之前的版本。...假设你要循环浏览 Mongoose cursor 【https://thecodebarbarian.com/cursors-in-mongoose-45】中的所有文档,并通过 websocket 或命令行报告进度
axios: 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用,该项目中前端所有请求都是通过axios来实现数据接收和页面渲染。...ES6:ECMAScript的新一代语法,模块化,解构赋值,Promise,class等方法,使得开发变得更加简单。...后端 Node.js: 整个系统后端通过 Node.js 进行实现,通过 Express 框架实现后端的 REST 接口,并以 json 的形式进行输出,对于普通的post请求和文件上传类的post请求...数据库 mongoDB: NoSQL数据库,使用mongoose进行数据库的连接和对于数据库的快速建模操作 收获 掌握了在项目中运用Vue全家桶解决各类问题。...加深了对nodejs和相关模块(path,nodemailer等)的理解和掌握 掌握了nodejs+mongoose操作数据库的一套完整的增删改查方法,体会到了图形统计的作用。
事件循环时典型的生产者/消费者模型,异步io,网络请求是生产者,源源不断等为node提供不同的事件,这次事件被传递导对应的观察者那里,事件循环则从观察者那里取出事件并处理 Node8起新增了 util.promisify...() 方法,可以快捷的把原来的异步回调方法改成返回 Promise 实例。...Events Events 是 Node.js 中一个非常重要的 core 模块, 在 node 中有许多重要的 core API 都是依赖其建立的....通过继承 EventEmitter 来使得一个类具有 node 提供的基本的 event 方法, 这样的对象可以称作 emitter,而触发(emit)事件的 cb 则称作 listener。...与前端 DOM 树上的事件并不相同, emitter 的触发不存在冒泡, 逐层捕获等事件行为, 也没有处理事件传递的方法。 Node.js 中 Eventemitter 的 emit 是同步的。
CORS 是用于提供Connect/Express中间件的node.js程序包,可用于启用具有各种选项的CORS。 5....于 Promise 的 HTTP客 户端,用于浏览器和 node.js 8. Morgan 地址:https://www.npmjs.com/package/morgan ?...既然Nodejs的强项在于异步,没有理由不找一个强大的支持异步的数据库框架,与之配合。 14 Mongoose 地址:https://www.npmjs.com/package/mongoose ?...Mongoose是mongoDB的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更容易。...一些著名的对Web攻击有XSS跨站脚本, 脚本注入 clickjacking 以及各种非安全的请求等对Node.js的Web应用构成各种威胁,使用Helmet能帮助你的应用避免这些攻击。 23.
mongodb提供的API也支持promise对象 ? ?...mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...将用户ID传递到当前页面 2.从数据库中查询当前用户信息 将用户信息展示到页面中 2.实现用户修改功能 1.指定表单的提交地址以及请求方式 2.接受客户端传递过来的修改信息...找到用户 将用户信息更改为最新的 当用户访问/delete时,实现用户删除功能 实现代码: user.js const mongoose = require('mongoose');...req, res) => { // res.end('list'); // 请求方式 const method = req.method; // 请求地址 const
9.Sails[27] Sails 是最流行的 Node.js MVC 框架,支持现代应用程序的需求:具有可扩展的,面向服务结构的数据驱动 API。...11.Axios[31] 基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。与 JS 内置 Fetch API[32] 相比,它易于设置,直观且简化了很多工作。...数据库工具 19.Mongoose[40] Mongoose 是一个 MongoDB 对象建模工具,设计用于在异步环境中工作。Mongoose 支持 Promise 和回调。...它具有可靠的事务支持、关系、即时和延迟加载、读取复制等特性。 ? 授权工具 21.Passport[42] Passport 的目的是通过一组可扩展的插件(称为策略)对请求进行身份验证。...53.Clean-CSS[76] 适用于 Node.js 平台和任何现代浏览器的快速高效的 CSS 优化器。具有高度可配置和多种兼容模式。
它相对较小,具有许多可用作插件的功能。通常被称为 Node.js 的标准服务器框架。...9、Sails 地址:https://www.npmjs.com/package/sails Sails 是 Node.js 最流行的 MVC 框架,支持现代应用程序的要求:具有可扩展、面向服务架构的数据驱动...CORS 和请求 10、Cors 地址:https://www.npmjs.com/package/cors 一个Node.js 中间件,用于提供 Connect/Express 中间件,可用于启用具有各种选项的跨域资源共享...11、Axios 地址:https://www.npmjs.com/package/axios 用于浏览器和 Node.js 的基于 Promise 的 HTTP 客户端。...Mongoose 支持 Promise 和回调。
Sequelize是一个基于Node.js的、承诺(Promise)式的对象关系映射(ORM)工具。简单来说,它能让开发者更简单、更直观地处理关系型数据库。...这意味着你可以在你的Node.js应用中轻松实现跨域请求的处理。 CORS包的特点和优势 简化代码:使用CORS包,你不需要编写大量代码就可以在Web应用中启用CORS。这使得开发过程更加高效。...https://www.npmjs.com/package/winston 7、Mongoose:Node.js的数据模型大师 在Node.js的世界里,处理数据库是一项基本技能。...Axios就是这样一个在Node.js和浏览器中都广泛使用的基于Promise的HTTP客户端。它能够处理请求和响应的数据转换,并且是同构的,意味着在服务器和客户端可以使用相同的代码库。...本文将介绍几个在未来应用开发中可能成为“必备”的Node.js库。例如,如果你的项目中大量使用MongoDB数据库,那么Mongoose库对你来说可能是个救星。
比如,在没有使用 Mongoose 的情况下,可能会在数据库中存储各种格式不一致的用户数据,而使用 Mongoose 后,所有用户数据都必须符合预定义的 Schema 结构,保证了数据的一致性。...一、使用 Mongoose 相比直接使用 MongoDB 的好处Mongoose官网Mongodb官网1、提供结构化的数据模型:定义数据结构:Mongoose 通过 Schema 定义数据结构,包括数据类型...这使得数据存储更加规范,避免了数据的随意性和混乱。数据验证:同时Mongoose 内置了丰富的数据验证功能,可以确保数据在保存到数据库前符合预期格式。...3、支持异步操作Promise 支持:Mongoose 的操作方法返回 Promise 对象,方便使用 async/await 语法进行异步操作。避免了回调地狱问题,提高了代码的可维护性。...二、如何使用Mongoose创建一个数据处理模块1、 安装 Mongoose在 Node.js 项目中,首先需要安装Mongoose。
,可以理解为JavaScript中的对象 field 字段,文档中的属性名称,可以理解为JavaScript中的对象属性 2....Mongoose第3三方包 使用Nodejs操作MongoDB数据库需要依赖Node.js第 三方包mongoose 使用npm install mongoose命令下载 3.启动MongoDB...4.数据库连接 使用mongoose提供的connect方法即可连接数据库。...MongoDB返回的是promise对象 mongoose.connect('mongodb://localhost/playground') .then(() => console.log(...则继续添加{ useUnifiedTopology: true },用逗号隔开 // 引入第三方模块mongoose const mongoose = require('mongoose'); // 1
创建集合 创建集合分为两步,-是对对集合设定规则,二是创建集合,创建mongoose.Schema构造函数的实例即可创建集合。...//4、创建文档 插入数据 // 创建集合实例对象 const course = new Course({ name: 'node.js', author: 'xc-dh', isPublished... isPublished: false }, (err, result) => { console.log(err); console.log(result); }); // 可以使用promise...then(result => console.log(result)) // 返回文档集合(数组形式) [{ _id: 5c0917ed37ec9b03c07cf95f, name: 'node.js...// 关联集合 const mongoose = require('mongoose'); // 连接数据库 mongoose.connect('mongodb://localhost/playground
后端框架 7.Express 一种快速、广受好评的极简 Node.js Web 框架。其体积相对较小,具有众多可作为插件使用的功能。很多人将其视为 Node.js 服务器框架的客观标准。...CORS 与请求 10.Cors Node.js 中间件,旨在提供一款 Connect/Express 中间件配合多种选项实现跨域资源共享。...项目链接: https://www.npmjs.com/package/cors 11.Axios 基于Promise的浏览器与 Node.js HTTP 客户端,易于设置、直观并对众多操作加以简化,...数据库工具 19.Mongoose Mongoose 是一款用于在异步环境下使用的 MongoDB 对象建模工具。Mongoose 支持回调机制。...项目链接: https://www.npmjs.com/package/mongoose 20.Sequelize Sequelize 是一款基于Promise的 Node.js ORM,适用于 Postgres
一、Node.js默认使用commonJs的模块化方案,TypeScript默认是ES6的模块化方案,两者有本质区别。...'这是Node.js版本' '//入口文件使用了两个路由器路由,分别处理get和post请求逻辑。...即使是同一个路由,但是请求方式不一样,他们的处理逻辑不会冲突' const express = require('express'); const db = require('....2.限制对象一旦生成那么无法改变,除非删除数据库 3.限制对象的增删改查都返回的是一个promise对象, 如果这时候去 if() 里判断,无论有什么样的结果,都是true, 而且这个 CRUD 操作都是异步...= require('mongoose'); module.exports = new Promise((resolve, reject) => { mongoose.connect('mongodb
,Nest 官方为我们提供了一个 Mongoose 的封装,我们需要安装 mongoose 和 @nestjs/mongoose: npm install mongoose @nestjs/mongoose...,负责处理客户端传入的请求和服务端返回的响应。...} } 这就是 controller 的作用,负责分发和处理请求和响应。...举个例子,我们的 controller 接收到了一个用户的查询请求,我们不能直接在 controller 中去查询数据库并返回,而是要将查询请求交给 provider 来处理,这里我们创建了一个 UserService...一个调用mongoose来操作mongoDB数据库的后端程序就已经写好了。
创建好的 Node.js 项目架构 大多数时候,我们在大团队中工作,不同的人处理系统的不同部分,如果事情没有得到妥当安排,就会变得混乱。...遵循这种架构模式的项目通常具有这样的结构: └───app.js # 应用程序的入口└───api # 包含控制器、路由和中间件 └───config...我们将构建一个可扩展的结构,以便促进团队协作。我们将使用 Node.js、Express.JS 和 MongoDB。请先确保安装了 Node.js 和 MongoDB。...它们被几个文件或模块调用,用于验证或修改请求或数据块,因为它们具有可重用的结构。例如,开发一个辅助函数来验证电子邮件的格式是否合法。...它是程序中与 HTTP 谓词相关的部分。中间件可能会保护这些路由,也可能不会。路由的主要功能是在请求到达时处理请求。 例如,POST 请求创建路由并期望数据被发布或传递。
SpaceX-API 是一个用于火箭、核心舱、太空舱、发射台和发射数据的开源 REST API(并且是使用Node.js编写,我们用这个项目借鉴无可厚非) 为了阅读的舒适度,我把下面的正文尽量口语化一点...API , 提供的/admin/cache接口,请求方式为delete,请求这个接口,首先要经过auth和authz两个中间件处理 这里补充一个小细节 一个用户访问一套系统,有两种状态,未登陆和已登陆...如果没有传入状态码,那么默认是500(所以我之前说过,代码要稳定,一定要有显示的指定默认值,要关注代码异常的逻辑,例如前端setLoading,请求失败也要取消loading,不然用户就没法重试了,有可能这一瞬间只是用户网络出错呢...目录分区必定要简洁明了,分层清晰,易于维护和拓展 成为一个优秀前端架构师的几个点 原生JavaScript、CSS、HTML基础扎实(系统学习过) 原生Node.js基础扎实(系统学习过),Node.js...不仅提供服务,更多的是用于制作工具,以及现在serverless场景也会用到,还有ssr 熟悉框架和类库原理,能手写简易的常用类库,例如promise redux 等 数据结构基础扎实,了解常用、常见算法
1.创建集合 创建集合分为两步,-是对对集合设定规则,二是创建集合,创建mongoose.Schema构造函数的实例即可创建集合。...//4、创建文档 插入数据 // 创建集合实例对象 const course = new Course({ name: 'node.js', author: 'xc-dh', isPublished...isPublished: false }, (err, result) => { console.log(err); console.log(result); }); // 可以使用promise...then(result => console.log(result)) // 返回文档集合(数组形式) [{ _id: 5c0917ed37ec9b03c07cf95f, name: 'node.js...使用id对集合进行关联 使用populate方法进行关联集合查询 // 关联集合 const mongoose = require('mongoose'); // 连接数据库 mongoose.connect
一、Node.js简介Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码。...Node.js的非阻塞I/O模型使其在处理大量并发连接时表现出色,非常适合构建高性能的网络应用。...npm(Node Package Manager):Node.js的包管理器,用于安装和管理项目依赖。Mongoose:一个MongoDB对象模型工具,用于操作数据库。...Cheerio:一个服务器端的jQuery实现,用于解析HTML。Request或Axios:用于发送HTTP请求。代理服务器:由于反爬虫机制,可能需要使用代理服务器。...数据解析:解析爬取到的HTML,提取音频信息。数据存储:将解析得到的数据存储到MongoDB数据库。错误处理:处理网络请求和数据解析过程中可能出现的错误。定时任务:设置定时任务,实现数据的周期性抓取。
领取专属 10元无门槛券
手把手带您无忧上云