在 Nest.js 中使用 MongoDB 与 TypeORM
在 Nest.js 中使用 MongoDB 与 TypeORM
首先要在 database 文件夹里建立DatabaseModule模块文件,
// database/database.module.ts
import { Module } from '@nestjs/common';
import { databaseProviders } from './database.providers';
@Module({
providers: [...databaseProviders],
exports: [...databaseProviders],
})
export class DatabaseModule {}
还有databaseProviders,要注意根据情况配置好端口、数据库名等等信息,
// database/database.providers.ts
import { createConnection } from 'typeorm';
export const databaseProviders = [
{
// Token可以自己设定
provide: 'DbConnectionToken',
useFactory: async () =>
await createConnection({
type: 'mongodb',
host: 'localhost',
port: 27017,
database: 'test',
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
}),
},
];
然后在一个需要用到 MongoDB 的模块里导入DatabaseModule,我这里用的是LoginModule,
// login/login.module.ts
import { Module } from '@nestjs/common';
import { DatabaseModule } from '../database/database.module';
import { loginProviders } from './login.providers';
import { LoginService } from './login.service';
import { LoginController } from './login.controller';
@Module({
imports: [DatabaseModule], // 这里导入进来
controllers: [LoginController],
providers: [...loginProviders, LoginService],
})
export class LoginModule {}
定义好你的数据实体,
// login/login.entity.ts
import { Entity, Column, ObjectID, ObjectIdColumn } from 'typeorm';
@Entity()
export class User {
@ObjectIdColumn() id: ObjectID;
@Column() username: string;
@Column() password: string;
}
在loginProviders里注入,
// login/login.providers.ts
import { Connection, getMongoRepository } from 'typeorm';
import { User } from './login.entity';
export const loginProviders = [
{
// Token可以自己设定
provide: 'LoginRepositoryToken',
// User是entity定义的数据实体
useFactory: (connection: Connection) => connection.getMongoRepository(User),
inject: ['DbConnectionToken'],
},
];
在LoginService里面引入,
import { Injectable, Inject } from '@nestjs/common';
import { MongoRepository } from 'typeorm';
import { User } from './login.entity';
@Injectable()
export class LoginService {
constructor(
// Token要对应
@Inject('LoginRepositoryToken')
private readonly loginRepository: MongoRepository<User>,
) {}
// 数据库的操作交给service来提供
async findAll(): Promise<User[]> {
return await this.loginRepository.find();
}
}
最后就可以在LoginController里面使用了!
在 Nest.js 中使用 MongoDB 与 TypeORM的更多相关文章
- 在egg.js中使用mongodb
1.egg.js官网只推荐了mysqle,要用mongodb得另找资料.通过查找,大家都在用Mongoose连接,于是乎学习. 网站链接:https://www.npmjs.com/package/e ...
- [Nest] 01.初见nest.js
github nest 介绍 Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架.它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人 ...
- js中闭包和对象相关知识点
学习js时候,读到几篇不错的博客.http://www.cnblogs.com/yexiaochai/p/3802681.html一,作用域 和C.C++.Java 等常见语言不同,JavaScrip ...
- Node.js 中MongoDB的基本接口操作
Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...
- 初识nest.js
nest的核心概念: Nest的核心概念是提供一种体系结构,它帮助开发人员实现层的最大分离,并在应用程序中增加抽象. 架构预览: 主要有三个核心概念:模块Module, 控制器Controller, ...
- mongoose - 让node.js高效操作mongodb
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- 1.从Node.js链接到MongoDB
MongoDB采用了MongoDB Node.js驱动程序作为标准. 1.安装MongoDB驱动 npm install mongoDB npm install mongoose require('m ...
- Node.js中的Session,不要觉得简单哦。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应 ...
- React+Node.js+Express+mongoskin+MongoDB
首发:个人博客,更新&纠错&回复 采用React + Node.js + Express + mongoskin + MongoDB技术开发的一个示例,演示地址在这里,项目源码在这里. ...
随机推荐
- openstack 架构
openstack 概念架构: openstack逻辑架构 常见的架构:
- nginx配置文件的通用语法介绍
nginx的配置文件是ascii文本文件. 比如http{ }这种的是指令块,include mime.types: 这种是指令,include是指令,mime.types指令的参数,指令和参数之 ...
- what is muxing and demuxing
They're short for multiplexing and demultiplexing. Multiplexing means combining different types of d ...
- C++输出中文字符
注:本文转载自互联网,感谢作者整理! 1. cout 场景1: 在源文件中定义 const char* str = "中文" 在 VC++ 编译器上,由于Windows环境用 ...
- Exchange邮件服务器安全
Exchange是由微软推出的用于企业环境中部署的邮件服务器.Exchange在逻辑上分为三个层次:网络层(network layer).目录层(directory layer).消息层(messag ...
- https搭建(自签名证书)
博客搬家: https搭建(自签名证书) 上一篇博客探究了https(ssl)的原理,为了贯彻理论落实于实践的宗旨,本文将记录我搭建https的实操流程,使用Apache2+ubuntu+openss ...
- java一些技术
怎么样得到编译.java文件得到.class文件 两个用于反编译的工具Luyten和java decompiler 直接将jar包或则.class字节码文件拖到里面即可得到反汇编得到对应的java文件 ...
- 7天用Go动手写/从零实现分布式缓存GeeCache
1 谈谈分布式缓存 第一次请求时将一些耗时操作的结果暂存,以后遇到相同的请求,直接返回暂存的数据.我想这是大部分童鞋对于缓存的理解.在计算机系统中,缓存无处不在,比如我们访问一个网页,网页和引用的 J ...
- 08-JavaScript基础
今日知识 1. JavaScript基础 2. 案例 3.总结 JavaScript介绍: * 概念:一门客户端脚本语言 * 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎 * ...
- MSSqlServer访问远程数据库
--第一部分(要点)--永久访问方式(需对访问远程数据库进行经常性操作)时设置链接数据库Exec sp_addlinkedserver 'MyLinkServer','','SQLOLEDB','远程 ...