<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 目錄結構 ~~~bash ├── api // 接口 ├── config // 項目配置 │ ├─ development.config.env │ ├─ env.js │ └─ production.config.env ├── controllers // 接口邏輯 ├── logs // 日志輸出 ├── middlewares // 中間件 ├── models // 表 ├── routes // 路由 ├── sql // sql語句 ├── utils // 通用方法 ├── test // 測試 ├── app.js // 入口文件 ├── .evt // 環境配置文件 ,不需要內容 ├── package.json └── README.md ~~~ <br> # api ~~~ import db from '../database/db.js' // 引入user的表結構 const todoModel = '../models/list.js' const TodolistDb = db.Todolist // 引入數據庫 const Todolist = TodolistDb.import(todoModel) const getTodolistById = async (id) => { // 獲取某個用戶的全部todolist const todolist = await Todolist.findAll({ // 查找全部的todolist where: { user_id: id }, attributes: ['id','content','status'] // 只需返回這三個字段的結果即可 }) return todolist // 返回數據 } const createTodolist = async (data) => { // 給某個用戶創建一條todolist await Todolist.create({ user_id: data.id, // 用戶的id,用來確定給哪個用戶創建 content: data.content, status: data.status }) return true } export default { getTodolistById, createTodolist } ~~~ <br> # config 加載配置 ~~~ // config/development.config.env PORT = 3000 # 數據庫配置 DB_HOST=localhost DB_USER=root DB_PASS=123456 DB_NAME=todolist DB_PORT=3306 # 登錄密鑰 SECRET = vue-koa-demo ~~~ <br> ~~~ // config/env.js // 參考自 https://segmentfault.com/a/1190000010613033 var NODE_ENV = process.env.NODE_ENV || 'development' const path = require('path') const resolve = path.resolve const join = path.join const currentDir = resolve(__dirname) const rootDir = join(currentDir, '..') const dotenv = require('dotenv') // 讀取默認配置文件 const globalDotEnv = dotenv.config({ path: join(rootDir, '.env'), silent: true // 如果找不到該文件,則不會拋出異常 }); // 讀取環境變量對應的配置文件 const envDotEnv = dotenv.config({ path: join(currentDir, NODE_ENV + `.config.env`), silent: true }) // 合并變量 const allVars = Object.assign({}, { 'NODE_ENV': NODE_ENV }, globalDotEnv, envDotEnv) // 創建一個包含所有環境變量的新對象,并對每個值進行清理 const initialVariableObject = Object.keys(allVars) .reduce((memo, key) => { memo['process.env.' + key.toUpperCase()] = JSON.stringify(allVars[key]) return memo }, {}) export default initialVariableObject ~~~ <br> # controller ~~~ import todoList from '../api/todolist' const getTodolist = async (req, res, next) => { // 獲取某個用戶的所有todolist const id = req.params.id // 獲取url里傳過來的參數里的id const result = await todoList.getTodolistById(id) // 通過yield “同步”地返回查詢結果 res.send(result) } const createTodolist = async (req, res, next) => { // 給某個用戶創建一條todolist const data = req.body // post請求,數據是在request.body里的 const result = await todoList.createTodolist(data) res.send({ success: true }) } export default { getTodolist, createTodolist } ~~~ <br> # database 連接數據庫 ~~~ // db.js import Sequelize from 'sequelize' const Todolist = new Sequelize( process.env.DB_NAME, // 數據庫名 process.env.DB_USER, // 用戶名 process.env.DB_PASS, // 用戶密碼 { host: process.env.DB_HOST, // 數據庫使用mysql port: process.env.DB_PORT, // 數據庫服務器ip dialect: 'mysql', // 數據庫服務器端口 define: { timestamps: false // 取消Sequelzie自動給數據表加入時間戳(createdAt以及updatedAt) } } ) console.log('數據庫鏈接成功'); export default { Todolist // 將Todolist暴露出接口方便Model調用 } ~~~ # model ~~~ // list.js export default function(sequelize, DataTypes) { return sequelize.define('list', { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true }, user_id: { type: DataTypes.INTEGER(11), allowNull: false, references: { model: 'user', key: 'id' } }, }, { tableName: 'list' }); }; ~~~ <br> # router ~~~ // index.js 'use strict' import auth from './auth' import api from './api' export default app => { app.use('/auth', auth) app.use('/api', api) } ~~~ ~~~ // api.js import express from 'express' import api from '../controller/todolist' const router = express.Router() router.get('/todolist/:id', api.getTodolist) router.post('/todolist', api.createTodolist) router.post('/todolist/:userId/:id', api.removeTodolist) router.post('/todolist/:userId/:id/:status', api.updateTodolist) module.exports = router; // 導出router規則 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看