用 NodeJS, Express, MongoDB 和 TypeScript 设计 API 启动 如果你是新手,可以看看《TypeScript 实用指南》,或者从《如何用 Node JS、Express...在前面创建的 Todo 模块的帮助下,我们现在可以从 MongoDB 获取数据并返回 Todo 数组。...app.ts import express, { Express } from "express" import mongoose from "mongoose" import cors from "cors...FC (FC 代表函数组件),它接收 saveTodo() 方法为 props,该方法允许我们将数据保存到数据库。...我们还需要添加一个替代类型({}),因为初始状态是个空对象。 有了这些,我们现在可以继续下一步,展示获取的数据。
下面列表常见且好用的 NodeJS 库,反正我自己是已经收藏了,以备将来会用到 ? 1. Express 地址:https://www.npmjs.com/package/express ?...同时支持PostgreSQL, MySQL, SQLite and MSSQL多种数据库,很适合作为Nodejs后端数据库的存储接口,为快速开发Nodejs应用奠定扎实、安全的基础。...既然Nodejs的强项在于异步,没有理由不找一个强大的支持异步的数据库框架,与之配合。 14 Mongoose 地址:https://www.npmjs.com/package/mongoose ?...Mongoose是mongoDB的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更容易。...Lodash 减少数组、数字、对象、字符串等工作的麻烦,它让 JS 变得更容易。 18. chalk 地址:https://www.npmjs.com/package/chalk ?
mongodb 文档型数据库,nodejs的好基友。...而mongoose就是i 一个良好的工具。 mongoose是一个优雅的nodejs对象文档模型。它是由关系型数据库的思想去应用到非关系型数据库。...文档地址:https://mongoosejs.com/docs/guide.html 安装: npm install mongoose -S 增删改查使用实例 const mongoose = require...author: String, body: String, comments: [{ body: String, date: Date }], // 定义对象数组...Keystone是以Express和MongoDB和mongoose为基础搭建的开源的Node.js CMS和web应用程序平台。
$message.error(err); }) } } 后台相关 连接数据库 在server根目录下新建db.js // db.js var mongoose = require('mongoose...初始化一条数据 如果对mongodb,mongoose没有基础的了解,建议看一看mongoose深入浅出 ,mongoose基础操作 // controllers/student.js const...} else { ... } } }) } } }) }; 获取考试记录,子文档数组分页模糊查询...如下图是我的student集合: 在该集合中,学生参加过的考试记录,存在exams数组中,当想实现分页查询几条数据的时候,需要用到$slice $slice:[start,size] 第一个参数表示...}) // .......................判断太长省略........................ }) }; 更新子文档数组
第一章 周介绍 1-1 本周介绍 服务端选型:所有技术为业务服务 nodejs框架选型:Koa2 数据库:Mysql Mongodb Redis 登录校验:JWT 单元测试与接口测试:Jest...线上服务:PM2 + nginx 第二章 选择nodejs框架 2-1 nodejs框架选型-开始 所用常见的nodejs框架中,Koa2是最简单、最小的 目的扩充广度,让你了解有这门技术 Koa2...框架:express 8-1 安装 通过脚手架安装:express-generator npm i express-generator -g express express-test cd express-test...255,varchar为可变长度,并不是会占用这么多的空间,数据库会自动计算缩短空间 第十一章 mongodb基础学习 11-1 mongodb是文档数据库 Mongodb是一个文档数据库 Mongodb...举例说明 文档数据库 Mysql 以表格形式存储数据 Redis以 key-value形式存储数据 Mongodb是以文档形式存储数据,格式像JSON 对比 Mysql 关系型 |表格存储
对象的复杂模拟。...判断何时应该发送响应以及何时应该在 “后台” 继续处理(例如,将响应发送到客户端之后),这两个问题比较复杂。...// 响应被发送到客户端......这一层不应存在任何形式的 “SQL 查询”,可以使用数据访问层。 从 Express.js 的路由器移除你的代码。...让我们看一下经典的 Express.js 应用初始化 const mongoose = require('mongoose'); const express = require('express
同时它也是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以文档的形式存储(文档,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档...Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。...同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。 2. Mongoose能做什么?...Mongoose,因为封装了对MongoDB对文档操作的常用处理方法,让NodeJS操作Mongodb数据库变得easy、easy、So easy!...MongoDB —— 是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以Document(以下简称文档)的形式存储(Document,就是一个关联数组式的对象,它的内部由属性组成,
内存控制,让Javascript和Java比较复杂数据类型定义,也是很困难的。因为Javascript的面向对象是基于JSON的,而Java是直接使用内存结构。...2.1 Web开发:Express + EJS + Mongoose/MySQL express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。...mongoose 是MongoDB的对象模型工具,通过Mongoose框架,可以进行访问MongoDB的操作。 mysql 是连接MySQL数据库的通信API,可以进行访问MySQL的操作。...如果你已经有了一个Markdown的文档,30秒就可以制作成幻灯片。Cleaver是为Hacker准备的工具。 ?...以下内容是我整理的文档和教程,每个软件包对应一篇文章,大家可以根据自己的需要进行阅读。
3、支持异步操作Promise 支持:Mongoose 的操作方法返回 Promise 对象,方便使用 async/await 语法进行异步操作。避免了回调地狱问题,提高了代码的可维护性。...= require("mongoose");async function main() { await mongoose.connect("mongodb://127.0.0.1:27017/express-template...> { console.log("数据库连接失败"); });定义一个 users 模型的 SchemaSchema 是 Mongoose 中定义文档结构的方式。...("mongodb://127.0.0.1:27017/express-template");}main() .then((res) => { console.log("数据库连接成功");...userModel({ username: "xiaoyi", age: 20 });user1.save();3、启动Mongodb服务以管理员身份打开 cmd启动服务net start MongoDB4、打开nodejs
二、与其它框架的对比 市面上 NodeJS 的服务端框架有很多,如Koa、Express、EggJS、Midway等,它们功能都很强大,也有很好的生态,插件非常丰富,为什么还需要Nest呢?...依赖注入最大的作用是代码解耦,依赖的对象根据不同的情况可以有多种实现,如单元测试的时候可以在不改业务代码的情况下将依赖的对象换成 Mock 数据。...另外,Nest是基于Express实现的,需要的话可以取到底层的对象,如request和response。...另外几种切面和请求处理的顺序见下图: 这里的Middleware就是Express原生的,其它几个切面的用法见官方文档,在此不多作介绍。...连接数据库 例子中使用mongoose连接和操作本地MongoDB数据库。为了更方便使用,Nest提供了@nestjs/mongoose包,对mongoose包装了一层,使其更符合Nest的使用风格。
passport.js是Nodejs中的一个做登录验证的中间件,极其灵活和模块化,并且可与Express、Sails等Web框架无缝集成。...MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 ? 更多的mongodb学习资料。 安装mongodb可视化工具 下载链接 ?...这个项目中没有涉及到关联collection,操作(CURD)起来就像是操作json数据。 mongoose Mongoose:一款为异步工作环境设计的 MongoDB 对象建模工具。...Schema 可以定义每个文档中存储的字段,及字段的验证要求和默认值。 mongoose.model() 方法将模式“编译”为模型。模型就可以用来查找、创建、更新和删除特定类型的对象。...let skip = (page - 1) * pageSize // 在nodejs中,必须要使用RegExp,来构建正则表达式对象。
我们将使用流行的ORM Mongoose 讨论 Node.js Express 程序中的 API 日志记录。...让我们分解上面的函数,看看发生了什么: _.transform: 它是数组 .reduce 的替代品。它会迭代你对象的 keys 和 values。它提供了一个 accumulator,是第一个参数。...isEqual:此方法支持比较数组、数组缓冲区、布尔值、日期对象、错误对象、映射、数字、对象、正则表达式、集合、字符串、符号和类型化数组。...步骤3:创建一个插件用来 diff 并将其保存到数据库 现在我们需要跟踪数据库中的前一个 document 并在保存到 mongodb 之前创建一个 diff。...this.isNew():如果你正在创建新文档,那么只需返回 next()中间件。 在 schema.post('init') 的 toObject()中: doc.
passport.js是Nodejs中的一个做登录验证的中间件,极其灵活和模块化,并且可与Express、Sails等Web框架无缝集成。...MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 [crud-annotated-document.png] 更多的mongodb学习资料。...mongoose Mongoose:一款为异步工作环境设计的 MongoDB 对象建模工具。...Schema 可以定义每个文档中存储的字段,及字段的验证要求和默认值。 mongoose.model() 方法将模式“编译”为模型。模型就可以用来查找、创建、更新和删除特定类型的对象。...let skip = (page - 1) \* pageSize // 在nodejs中,必须要使用RegExp,来构建正则表达式对象。
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本...还没有装express的可以移步到 这里 看看express框架的获取安装 1.简单地项目初始化 进入你的nodejs安装路径下边,如图,然后执行命令 express -e test (这里把项目名设置为...据我所知mongodb主要有两种使用方法,这里使用了其中的一种:使用 mongoose Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB...同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。...Github: https://github.com/imwtr/nodejs_express_login_register ------------------------------ 原创作品,
1.数据库相关概念 在一个数据库软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个 数据集合中可以包含多条文档(具体的数据)。...术语 解释说明 database 数据库,mongoDB数据库软件中可以建立多个数据库 collection 集合,一组数据的集合,可以理解为JavaScript中的数组 document 文档,一条具体的数据...,可以理解为JavaScript中的对象 field 字段,文档中的属性名称,可以理解为JavaScript中的对象属性 2....Mongoose第3三方包 使用Nodejs操作MongoDB数据库需要依赖Node.js第 三方包mongoose 使用npm install mongoose命令下载 3.启动MongoDB...MongoDB返回的是promise对象 mongoose.connect('mongodb://localhost/playground') .then(() => console.log(
1.npm NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用...允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用 界面如下: 2.Express Express基于 Node.js 平台,快速、开放、极简的 Web 开发框架 关于Express的介绍可参考...Bootstrap、jQuery、React、Vue.js 一样优秀的前端开源项目提供稳定、快速、免费的前端开源项目 CDN 加速服务 截止目前共收录了 3606 个前端开源项目 界面如下: 4.mongoose...mongoose是在node.js异步环境下对mongodb数据库进行便捷操作的对象模型工具 关于mongodb可参考:教零基础女朋友学MongoDB 界面如下: 5.Vue.js Vue.js是一套用于构建用户界面的渐进式框架...让前后端约定接口的工作变得十分的简单 RAP2会自动根据接口文档生成Mock接口,这些接口会自动生成模拟数据,支持复杂的生成逻辑。
、do..while、for循环 break、continue语法 函数定义与调用 全局变量与局部变量 函数传参与返回值 函数作用域与变量作用域 DOM的基本操作 定时器使用 this指向与修改指向 数组...sql语法 apache服务器与集成开发工具 PHP链接数据库 PHP与AJAX交互 实战:留言板、登录、注册等 HTML5中高级开发工程师 面向对象基础 面向对象概述 对象和构造函数(类)之间的关系...对象的属性和方法 原型与原型链 包装对象与内部实现 对象中实现继承方式 设计模式及实际运用 JavaScript高级 JS算法与排序算法 promise异步处理 运动与tween算法 闭包与模块化 JS...分区及分支等概念 远程github操作 实战:多人协作开发项目 HTML5新功能 canvas绘图 svg绘图 音频与视频 本地存储与离线存储 地理信息 web Worker web Socket NodeJS...增删改查 mongodb与node结合开发 mongoose数据建模 mongoose与node结合开发 express框架 中间件与ejs模板引擎 Robomongo与postman工具 express
1.5数据库相关概念 在一个数据库软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个 数据集合中可以包含多条文档(具体的数据)。...术语 解释说明 database 数据库,mongoDB数据库软件中可以建立多个数据库 collection 集合,一组数据的集合,可以理解为JavaScript中的数组 document 文档,一条具体的数据...,可以理解为JavaScript中的对象 field 字段,文档中的属性名称,可以理解为JavaScript中的对象属性 1.6 Mongoose第3三方包 使用Nodejs操作MongoDB数据库需要依赖...1.8数据库连接 使用mongoose提供的connect方法即可连接数据库。...MongoDB返回的是promise对象 mongoose.connect('mongodb://localhost/playground') .then(() => console.log(
,将数据存储为一个文档,数据结构由键值(key=>value)对组成。...MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,操作起来比较简单和容易。...//doc是保存成功之后的文档对象 console.log(err); console.log(doc); }) UserModel.create({name:'vivo'...第二种写法是返回promise 上述定义 model 的方法是通过 model 类创建的,还有一种创建 model 的方法是通过实例创建,这个创建出来的是一个操作对象,代表是一个单个文档只能操作自己。...官网: https://mongoosejs.com [4] CommonJS规范: https://javascript.ruanyifeng.com/nodejs/module.html [5] mongoose
// mongoose.Schema() 是一个构造函数,要new一个实例对象 //2、设定集合规则 const courseSchema = new mongoose.Schema({ name...实际在数据库中产生的集合名为courses 2.创建文档 创建文档实际上就是向集合中插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象下的save方法将数据保存到数据库中。...//4、创建文档 插入数据 // 创建集合实例对象 const course = new Course({ name: 'node.js', author: 'xc-dh', isPublished...: true }); // 调用实例对象下的save方法将数据保存到数据库中。...返回文档集合(数组形式) [{ _id: 5c0917ed37ec9b03c07cf95f, name: 'node.js基础', author: 'xc-dh‘ },{
领取专属 10元无门槛券
手把手带您无忧上云