尝试使用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导入工具