尝试使用Node.js创建应用程序【带有登录功能的人才派遣公司应用程序】

PostgreSQL是什么?

    RDBMS(リレーショナルデータベース管理システム)

搭建Node.js项目

npm init
//いくつかのライブラリをインストールする
npm i express cors multer pg sequelize fast-csv json2csv
    • Express – アプリケーションにREST APIを提供するためにExpressを使用

 

    • Cors – バックエンドとフロントエンドのサーバー間でCORS(Cross-Origin Resource Sharing)を設定するために、このライブラリを使用

 

    • Multer – multipart/form-dataの処理に使用するNode.jsのミドルウェアで、主にファイルのアップロードに使用

 

    • Pg – Node.js用のノンブロッキングPostgreSQLクライアント

 

    • Sequelize – Oracle、Postgres、MySQL、MariaDB、SQLite、SQL Serverなど様々なデータベースに対応した最新のTypeScriptおよびNode.js ORM

 

    • Fast-csv – Node.jsでCSVやその他の区切り値のファイルをパースしてフォーマットするためにこのライブラリを使用

 

    Json2csv – このライブラリを使用して、JSONをカラムタイトルと適切な行末を持つCSVに変換

创建一个名为 “server” 的文件夹,并将所有的代码添加到该目录中。

接下来,我们需要定义一个React前端客户端,因此需要创建另一个目录来托管前端。

npx create-react-app client

配置一个PostgreSQL数据库

通过托管PostgreSQL实例,并配置后端服务器以连接到该数据库。通过创建Docker-compose.yml文件,可以快速启动PostgreSQL实例。

touch docker-compose.yml
version: '3.1'

services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: Welcome123
      POSTGRES_DB: csvdb

本地托管Postgres实例。

docker-compose up

在服务器目录下创建一个名为config/db.config.js的文件,然后将连接代码写入该文件中。

const HOST = "localhost";
const USER = "postgres";
const PASSWORD = "Welcome123";
const DB = "csvdb";
const dialect = "postgres";
const pool = {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
};

export default {
    HOST,
    USER,
    PASSWORD,
    DB,
    dialect,
    pool
};

定义数据模型

定义保存在数据库中的员工数据。创建一个名为”models”的文件夹,并在其中创建一个名为”employee.model.js”的模型文件。

import Sequelize from 'sequelize';
import { sequelize } from '../database/index.js';

const Employee = sequelize.define('employee', {
  id: {
    type: Sequelize.STRING,
    primaryKey: true,
  },
  name: {
    type: Sequelize.STRING,
  },
  email: {
    type: Sequelize.STRING,
  },
  username: {
    type: Sequelize.STRING,
  },
  dob: {
    type: Sequelize.STRING,
  },
  company: {
    type: Sequelize.STRING,
  },
  address: {
    type: Sequelize.STRING,
  },
  location: {
    type: Sequelize.STRING,
  },
  salary: {
    type: Sequelize.STRING,
  },
  about: {
    type: Sequelize.STRING,
  },
  role: {
    type: Sequelize.STRING,
  },
  managedBy: {
    type: Sequelize.STRING,
    references: {
      model: 'employees',
      key: 'id',
    },
  },
  createdAt: {
    type: Sequelize.STRING,
  },
  updatedAt: {
    type: Sequelize.STRING,
  },
  avatar: {
    type: Sequelize.STRING,
  },
});

export default Employee;

请参考以下网站

【PostgreSQL入门】适合初学者!学习PostgreSQL数据库基础【直到构建API】
使用Node.js构建一个CSV导入工具

bannerAds