首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React、TypeScript、NodeJS 和 MongoDB 搭建 Todo App

代码编译成纯 JavaScript 后,dist 目录将用作输出文件夹。 我们还有一个 app.ts,它是服务器的入口。控制器、类型和路由也在它们各自以它们命名的的文件夹中。...dist/js 文件夹 rootDir: 告诉 TypeScript 编译 src 文件夹中的每个 .ts 文件 include: 告诉编译器包含 src 目录和子目录中的文件 exclude:...在编译时会排除数组中的文件或文件夹 现在我们安装依赖项,使项目可以使用 TypeScript。...yarn add express cors mongoose 我们还需要安装它们的类型作为开发依赖项,帮助 TypeScript 编译器理解这些包。...如果你想,你可以让 TypeScript 帮你推断。 接下来,我们使用 getTodos() 函数来获取数据,它接收 req 和 res 参数并返回 promise。

17K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ✅快速构建Express服务

    使用Mongoose构建服务该方式需要在本地安装MongoDB才可以使用 TypeScript、Express、Mongoose 和 pnpm 可以快速构建后端服务,并实现增删改查以及列表查询的功能。...mongoosepnpm install --save-dev typescript ts-node nodemon @types/express @types/mongoose创建 TypeScript...models.ts:Mongoose 模型定义文件。routes.ts:Express 路由定义文件。在 models.ts 文件中定义 Mongoose 模型。...例如,我们创建一个 User 模型:import mongoose from 'mongoose';const userSchema = new mongoose.Schema({ name: {...使用内存数据库SQLite数据库该方式无需安装数据库SQLite,使用的是内存数据库以下步骤和之前的一样,不再做过多解释mkdir backendcd backendpnpm initpnpm install

    20721

    Node.js 搭建一个 API 接口服务(实战)

    ,最后决定使用的技术栈就是 koa+typescript+mysql+mongodb来搭建项目。...关于洋葱模型,大概归纳起来就是两点 context的保存和传递 中间件的管理和next的实现 ? (图片来源于网络) ?...Typescript 网上特别多关于“为什么要用Typescript开发”,“Typescript开发的好处和坏处”,“为什么不用Typescript开发”等等的争论和文章,有兴趣的同学也可以去说道说道哈...我主要把项目分为:框架,日志,配置,路由,请求逻辑处理,数据模型化这几个模块 以下是一个项目的目录结构: ├── app 编译后项目文件 ├──...不过这个项目除了使用mysql,也还有用到mongo,接下来看看mongodb怎么用 使用mongoose作为mongodb的中间件 // mongoose入口 import mongoose from

    8.5K32

    你真的了解mongoose吗?

    相信看了这篇文章,一定会对你快速上手,了解使用 mongoose 有不小的帮助。 mongoose 涉及到的概念和模块还是很多的,大体有下面这些: ?...创建模型 使用我们的 schema 定义,我们需要将我们的userSchema转成我们可以用的模型。也就是mongoose.model(modelName, schema) 。...user/pass:身份验证的用户名和密码。这是 mongoose 中特殊的选项,它们可以等同于 MongoDB 驱动中的auth.user和auth.password选项。...error */ } ); 说完Connections,下面让我们来看一个重点Models 模型(Models) Models 是从 Schema 编译来的构造函数。...ref 选项告诉 Mongoose 在填充的时候使用 User model。所有储存在 answerer 中的 _id 都必须是 User model 中 document 的 _id。

    41.6K30

    Node.js 配合 express 框架、mongodb 实践 &&

    一、Node.js默认使用commonJs的模块化方案,TypeScript默认是ES6的模块化方案,两者有本质区别。.../(使用相对路径),暴露接口使用exports或者module.exports 2.TypeScript的 import * from url 的引入依赖,需要填写完整的相对路径,否则是找不到模块的...,暴露接口使用export . 3.Node中使用TypeScript需要下一些包去支持,比如express框架这些,还有一些支持内置对象的包: 4.github源码下载地址 "dependencies...'这是Node.js版本' '//入口文件使用了两个路由器路由,分别处理get和post请求逻辑。...模块 有 天坑 需要注意 限制对象一旦生成那么无法改变,除非删除数据库 'database模块' const mongoose = require('mongoose'); module.exports

    5K20

    如何使用Mongoose创建一个数据处理的模块

    前言对于一个用户模型,可以定义用户名、邮箱、密码等字段及其类型(如字符串、数字等)。这使得数据的存储和操作更加规范,避免了数据的随意性和混乱。...比如,在没有使用 Mongoose 的情况下,可能会在数据库中存储各种格式不一致的用户数据,而使用 Mongoose 后,所有用户数据都必须符合预定义的 Schema 结构,保证了数据的一致性。...一、使用 Mongoose 相比直接使用 MongoDB 的好处Mongoose官网Mongodb官网1、提供结构化的数据模型:定义数据结构:Mongoose 通过 Schema 定义数据结构,包括数据类型...: true, }, age: { type: Number, required: true, },});使用 Schema 创建一个 User 模型const userModel =.../model/index.js5、打开Navicat数据库开发工具,查看创建的User模型

    7410

    用 Mongoose 插件记录Node.js API日志

    插件就像一个函数,你可以在模式中使用它,并在模式实例上一次次地重用。 Mongoose 还提供全局插件,你可以将其用于所有模式。...这是我们的模型:models/log.js const mongoose = require('mongoose') const Schema = mongoose.Schema const { ObjectId...函数和 DOM 节点则进行严格相等的比较,即使用 ===。 这里我们迭代每个对象的属性和值,并将它与旧对象进行比较。...现在我们需要使用架构上可用的 init 和 save 方法。 this.isNew():如果你正在创建新文档,那么只需返回 next()中间件。...你还可以通过在架构模型中初始化它来将其用于特定架构。 const mongoose = require('mongoose') mongoose.plugin(require('.

    2.8K40

    不容错过的 Node.js 项目架构

    jobs # 对于 agenda.js 的任务调度定义 └───loaders # 将启动过程拆分为模块 └───models # 数据库模型...DI 或控制反转(IoC)是一种常见的模式,通过 “注入” 或通过构造函数传递类或函数的依赖关系,有助于代码的组织。...通过使用依赖项注入和这些组织模式,单元测试变得非常简单。 你不必模拟 req/res 对象或 require(...) 调用。...有一个 config/index.ts 文件,其中 NPM 包 dotenv 加载 .env 文件,然后我使用一个对象存储变量,因此我们具有结构和代码自动完成功能。...使用 Pub/Sub 模式并为后台任务触发事件。 进行依赖注入,让您高枕无忧。 切勿泄漏您的密码、机密和 API 密钥,请使用配置管理器。

    5.9K30

    最新HTML5学习路线整合

    全局变量与局部变量 函数传参与返回值 函数作用域与变量作用域 DOM的基本操作 定时器使用 this指向与修改指向 数组、字符串等方法操作 时间对象与正则对象 掌握常见BOM操作 常见事件与事件细节...简介与基本语法 mysql数据库及sql语法 apache服务器与集成开发工具 PHP链接数据库 PHP与AJAX交互 实战:留言板、登录、注册等 HTML5中高级开发工程师 面向对象基础 面向对象概述 对象和构造函数...闭包与模块化 JS组件开发 打造小型jquery框架 JS性能优化 ES6新增功能 前端工程化 gulp基本使用 less、sass、babel等预编译框架 理解模块概念,AMD与CMD规范 前端模块框架...mongoose与node结合开发 express框架 中间件与ejs模板引擎 Robomongo与postman工具 express+mongoose搭建后端框架 设计Restful API 实战:...react-router使用 Mem脚手架使用 实战:React与Node全栈开发 AngularJS框架 Angular框架简介 TypeScript基础与进阶 开发环境配置 架构、模块与组件 模板

    2K40

    架构和数据库

    Mongoose 让我们可以通过 Node 操作 MongoDB 模板 Mongoose 是对象文档模型(ODM)库,对原生的模块进行了封装,提供了更多的功能 Mongoose 优势 官方地址:http...://www.mongoosejs.net/ 可以为文档创建一个模式结构(Schema) 可以对模型中的对象/文档进行验证 数据可以通过类型转换转换为对象 可以使用中间件来应用业务逻辑挂钩 比 Node...原生的 MongoDB 驱动更容易 使用 Mongoose 使用 npm install mongoose命令下载 使用 const mongoose = require('mongoose');...引入 mongoose 使用 mongoose.connect('mongodb://localhost/user_manage'); 如果使用默认端口号(27017),可以省略不写 监听 MongoDB.../tools/conn_mongo'); 定义一个模块,操作 Student 模型 // models/student.js const mongoose = require('mongoose');

    8010

    Mongoose学习参考文档

    一、快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对...Schema——纯洁的数据库原型 1.1 什么是Schema 我理解Schema仅仅只是一断代码,他书写完成后程序依然无法使用,更无法通往数据库端 他仅仅只是数据库模型在程序片段中的一种表现,或者是数据属性模型...{name:'krouky'},但是krouky属于Entity,包含有Schema属性和Model数据库行为模型。...如果是使用Model创建的对象,传入时一定会将隐藏属性也存入数据库,虽然3.x追加了默认严格属性,但也不必要增加操作的报错 3.4 删除   和新增一样,删除也有2种方式,但Entity和Model都使用...,使用中间件可以雾化模型,避免异步操作的层层迭代嵌套 8.4 使用范畴 复杂的验证 删除有主外关联的doc 异步默认 某个特定动作触发异步任务,例如触发自定义事件和通知   例如,可以用来做自定义错误处理

    24.2K90

    初试MongoDB学习之Mongoose的使用

    #Mongoose的优势 可以像操作对象一样操作数据库 可以为文档创建一个模式结构(Schema) 可以对模型中的文档/文档进行验证 数据可以通过类型转换为对象模型 可以使用中间件来应用业务逻辑挂钩 比...=require("mongoose"); 使用"mongoose"连接数据库: var db =mongoose.connect("mongodb://user:pass@localhost:port...Schema—— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是定义数据的类型,可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架...里都可以使用 具体可参考 :https://mongoosejs.com/docs/api.html#model_Model.find #mongoose 修改和删除 参考: https://mongoosejs.com...#Entity Entity—— 由Model创建的实体,使用save方法保存数据,Model和Entity的操作都能影响数据库的操作,但Model比Entity更具操作性。

    5.9K20

    04_数据库

    Mongoose 让我们可以通过 Node 操作 MongoDB 模板 Mongoose 是对象文档模型(ODM)库,对原生的模块进行了封装,提供了更多的功能 Mongoose 优势 官方地址:http...://www.mongoosejs.net/ 可以为文档创建一个模式结构(Schema) 可以对模型中的对象/文档进行验证 数据可以通过类型转换转换为对象 可以使用中间件来应用业务逻辑挂钩 比 Node...原生的 MongoDB 驱动更容易 使用 Mongoose 使用 npm install mongoose命令下载 使用 const mongoose = require('mongoose'); 引入...mongoose 使用 mongoose.connect('mongodb://localhost/user_manage'); 如果使用默认端口号(27017),可以省略不写 监听 MongoDB.../tools/conn_mongo'); 定义一个模块,操作 Student 模型 // models/student.js const mongoose = require('mongoose');

    7010

    TypeScript: 请停止使用 any

    any 类型是使用现有 JavaScript 的强大方法,可让您在编译期间逐渐选择加入和选择退出类型检查。 TypeScript 文档明确表达了当我们使用any类型时,我们正在告诉编译器: ?...他们将不得不在没有上下文和编译器帮助的情况下解释发生了什么。...有了文档,我可以提供所有上下文 添加类型时,我们会从编译器获得帮助,并且会获得不会随时间推移而衰减的文档,因为如果过时了,我们的代码将无法编译。...与使用它的库接口;确保在将数据移至系统之前尽快将其转换为正确的类型。 解决 TypeScript 类型错误;如果我们发现自己无法输入某些内容,则 any 可能有必要。...但是只有在尝试其他所有方法之后才推荐使用。如果使用它,我们应该将其重新转换为可预测的类型。 如果我们的函数可以真正处理任何类型,那么这种情况很少见,并且是偶然的(例如调试或日志记录函数)。

    1.2K21
    领券