Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
nest-mysql
Advanced tools
Readme
A progressive Node.js framework for building efficient and scalable server-side applications.
MySQL module for Nest framework (node.js) 😻
First install the module via yarn
or npm
or pnpm
and do not forget to install the driver package as well:
$ npm i --save nest-mysql mysql2
or
$ yarn add nest-mysql mysql2
or
$ pnpm add nest-mysql mysql2
MySqlModule is the primary entry point for this package and can be used synchronously
@Module({
imports: [
MysqlModule.forRoot({
host: 'localhost',
database: 'test2',
password: 'root',
user: 'root',
port: 3306,
}),
],
})
or asynchronously
@Module({
imports: [
MysqlModule.forRootAsync({
useFactory: () => ({
host: 'localhost',
database: 'test',
password: 'root',
user: 'root',
port: 3306,
}),
}),
],
})
UsersService:
import { Injectable } from '@nestjs/common';
import { InjectClient } from 'nest-mysql';
import { Connection } from 'mysql2';
import { User } from '../interfaces/user.interface';
@Injectable()
export class UsersService {
constructor(@InjectClient() private readonly connection: Connection) {}
async findAll(): Promise<User[]> {
const users = await this.connection.query('SELECT * FROM users');
const results = Object.assign([{}], users[0]);
return results;
}
}
UsersController:
import { Controller, Get } from '@nestjs/common';
import { UsersService } from './users.service';
import { User } from '../interfaces/user.interface';
@Controller()
export class UsersController {
constructor(private readonly usersService: UsersService) {}
@Get()
async getAllUsers(): Promise<User[]> {
return await this.usersService.findAll();
}
}
@Module({
imports: [
MysqlModule.forRootAsync(
{
useFactory: () => ({
host: 'localhost',
database: 'test1',
password: 'root',
user: 'root',
port: 3306,
}),
},
'db1Connection',
),
MysqlModule.forRootAsync(
{
useFactory: () => ({
host: 'localhost',
database: 'test2',
password: 'root',
user: 'root',
port: 3307,
}),
},
'db2Connection',
),
],
controllers: [],
providers: [],
})
export class AppModule {}
Usage example with Multi Connection
PostService:
import { Pool } from 'mysql2';
import { InjectConnection } from 'nest-mysql';
import { CreatePostDto } from './dto/create-post.dto';
import { Post } from '../interfaces/post.interface';
@Injectable()
export class PostService {
constructor(
@InjectConnection('db2Connection')
private dbConnection: Pool,
) {}
public async findAll(): Promise<Post[]> {
const posts = await this.dbConnection.query('SELECT * FROM posts');
const results = Object.assign([{}], posts[0]);
return results;
}
public async create(createPostDto: CreatePostDto): Promise<Post[]> {
try {
const post = await this.dbConnection.query(
'INSERT INTO posts (title, description) VALUES (?, ?)',
[createPostDto.title, createPostDto.description],
);
return post;
} catch (err) {
throw new HttpException(err, HttpStatus.BAD_REQUEST);
}
}
}
UsersService:
import { Pool } from 'mysql2';
import { InjectConnection } from 'nest-mysql';
import { CreateUserDto } from './dto/create-user.dto';
import { User } from '../interfaces/user.interface';
@Injectable()
export class UsersService {
constructor(
@InjectConnection('db1Connection')
private dbConnection: Pool,
) {}
public async findAll(): Promise<User[]> {
const users = await this.dbConnection.query('SELECT * FROM users');
const results = Object.assign([{}], users[0]);
return results;
}
public async create(createUserDto: CreateUserDto): Promise<User[]> {
try {
const user = await this.dbConnection.query(
'INSERT INTO users (firstName, lastName) VALUES (?, ?)',
[createUserDto.firstName, createUserDto.lastName],
);
return user;
} catch (err) {
throw new HttpException(err, HttpStatus.BAD_REQUEST);
}
}
}
For more information on node-mysql
see here
Feel free to help this library, I'm quite busy with also another Nestjs packages, but the community will appreciate the effort of improving this library. Make sure you follow the guidelines
FAQs
Mysql module for Nest framework (node.js) 😻
The npm package nest-mysql receives a total of 223 weekly downloads. As such, nest-mysql popularity was classified as not popular.
We found that nest-mysql demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.