Skip to content

steven4program/twitter-api-2020

 
 

Repository files navigation

Simple Twitter API

此專案提供 API 給前台使用

功能

  • 使用者能註冊/登入帳戶
  • 使用者能檢視所有推文
  • 使用者能/新增/刪除推文、Like/unLike 推文
  • 使用者能追蹤/檢視/使用者資訊(推文、回覆、Like 的內容、追蹤者/追隨者數量)
  • 後臺可查看/刪除貼文、瀏覽所有用戶

測試種子資料

  Admin: {
    "account": "root",
    "email": "[email protected]",
    "password": "12345678"
  },
  User1: {
    "username": "user1",
    "email": "[email protected]",
    "password": "12345678"
  },

建立專案

  1. 使用 Terminal,Clone 專案到本地
git clone https://github.com/steven4program/twitter-api-2020
  1. 進入存放此專案的資料夾
cd twitter-api-2020
  1. 安裝相關套件
npm install
  1. 將.env.example 改為.env,並改為自己的設定
JWT_SECRET=SKIP
IMGUR_CLIENT_ID=SKIP
  1. 修改 MySQL 相關資訊 修改 ./config/config.json,裡面 development、test 的 password 如要更改 database 的命名請於下一步一起更改
  "development": {
    "username": "root",
    "password": "<your_mysql_workbench_password>",
    "database": "ac_twitter_workspace",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": "<your_mysql_workbench_password>",
    "database": "ac_twitter_workspace_test",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "logging": false
  },
  ...
  "travis": {
    "username": "travis",
    "database": "ac_twitter_workspace_test",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "logging": false
  }
  1. 建立 MySQL 資料庫 打開 MySQL Workbench,並在登入且新增 SQL file 後,輸入
drop database if exists ac_twitter_workspace;
create database ac_twitter_workspace;
drop database if exists ac_twitter_workspace_test;
create database ac_twitter_workspace_test;
  1. 建立資料庫及種子資料
npx sequelize db:migrate
npx sequelize db:seed:all
  1. 啟動伺服器
npm run dev
  1. 在終端機看到以下字串代表伺服器建立成功:
Example app listening on port 3000!
  1. 自動化測試
NODE_ENV=test
npm run test
  1. 特定測試檔自動化測試
NODE_ENV=test
npx mocha test/{{ Model or Request }}/{{Model or Request}}.spec.js --exit

開發前置需求

開發人員

steven4program leo812leo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%