【Node.js教程】01—启动项目-采用NodeJs构建一个金融科技银行应用程序

1、你需要什么来启动Node.js项目?
2、安装Nest.js CLI并创建一个项目
npm i -g @ nestjs / cl
$ nest new lesson-one
3、添加Sequalize和Umzug
$ npm install --save sequelize sequelize-typescript$ npm install pg
$ npm install @types/bluebird$ npm install @types/validator
npm install umzug
4、创建一个数据库模块
import { Sequelize } from 'sequelize-typescript';export const databaseProvider = [{provide: 'SEQUELIZE',useFactory: async () => {const sequelize = new Sequelize({dialect: 'postgres',host:, port: 5432,username:, password:, database:});sequelize.addModels([]);return sequelize;}}]
import { Module } from '@nestjs/common';import { databaseProvider } from './database.provider';@Module({providers: [...databaseProvider],exports: [...databaseProvider]})export class DatabaseModule { }
import { Module } from '@nestjs/common';import { AppController } from './app.controller';import { AppService } from './app.service';import { DatabaseModule } from './modules/database/database.module';@Module({imports: [DatabaseModule,],controllers: [AppController],providers: [AppService],})export class AppModule {}
import { Sequelize } from 'sequelize-typescript';import Umzug = require('umzug');const sequelize = new Sequelize({dialect: 'postgres',host: 'YOUR_HOST',port: 5432,username: 'YOUR_USERNAME',password: 'YOUR_PASSWORD',database: 'YOUR_DB_NAME'});const umzug = new Umzug({storage: 'sequelize',storageOptions: { sequelize },logging: false,migrations: {params: [sequelize,sequelize.constructor,],path: './src/migrations',pattern: /\.ts$/,},});const task = (process.argv[2] || '').trim();switch (task) {case 'up':umzug.up().then((result) => {console.log('Migrations up went successful!', result);process.exit(0);});break;case 'down':umzug.down().then((result) => {console.log('Migrations down went successful!', result);process.exit(0);});break;default:break;};
import * as Sequelize from 'sequelize';const tableName = 'Users';export async function up(i: any) {const queryInterface = i.getQueryInterface() as Sequelize.QueryInterface;queryInterface.createTable(tableName, {id: {type: Sequelize.INTEGER,allowNull: false,autoIncrement: true,unique: true,primaryKey: true,},Username: {type: Sequelize.CHAR(200),allowNull: false,},Email: {type: Sequelize.CHAR(50),allowNull: false,},Password: {type: Sequelize.CHAR(250),allowNull: false,},});};export async function down(i: any) {const queryInterface = i.getQueryInterface() as Sequelize.QueryInterface;queryInterface.dropTable(tableName);}
import * as Sequelize from 'sequelize';const tableName = 'Accounts';export async function up(i: any) {const queryInterface = i.getQueryInterface() as Sequelize.QueryInterface;queryInterface.createTable(tableName, {id: {type: Sequelize.INTEGER,allowNull: false,autoIncrement: true,unique: true,primaryKey: true,},Type: {type: Sequelize.CHAR(200),allowNull: false,},Name: {type: Sequelize.CHAR(200),allowNull: false,},Balance: {type: Sequelize.INTEGER,allowNull: true,},UserId: {type: Sequelize.INTEGER,references: {model: 'Users',key: 'id',},},});};export async function down(i: any) {const queryInterface = i.getQueryInterface() as Sequelize.QueryInterface;queryInterface.dropTable(tableName);}
我们打开 package.json 文件,然后添加一个新命令如下:
{“ migrate”:“ ts-node ./migrate.ts”,...}
npm run migrate up
npm run migrate down

评论
