使用koa+mysql写一个简易论坛(一)

Github
代码同步仓库:

https://github.com/ShyGodB/Forum-Code-Synchronize-

完整代码仓库:

https://github.com/ShyGodB/BBS-by-Koa-Mysql

写作原因

  • 初学者,学习之余找点额外的事做
  • 分享一下自己的学习经历,让自己不至于那么枯燥
  • 写文章的过程也是对自己知识的整理与总结的过程

项目概述

  • 使用koa框架加mysql写一个简易的论坛,它必须有论坛的基本功能,暂时不考虑高并发等性能问题,因为这只是一个个人的实践项目,并没有多大的可能性会运用于生产,当然,如果可能的话,我当然希望我写的东西能够被很多人认可并使用的。
  • 具体功能介绍:

用户:

1、发帖,评论
2、 注册、登录、登录,保持、清除登录状态
3、个人信息设置,包括头像,昵称,联系方式等

管理员:

1、 用户的管理
2、子论坛的创建、展示、编辑
3、帖子的精华设置、置顶、删除

其它:

1、相对漂亮的UI

环境准备

1. 文本编辑器, 可以考虑以下几种:
  • Sublime text (收费,但可忽略)
  • Vscode (免费)
  • Atom(免费)
  • WebStorm (收费,很贵)
    当然你也可以用其它的文本编辑器,记事本也是可以的
2. node.js

英文网址:

https://nodejs.org/en/download/current/

中文网址

https://nodejs.org/zh-cn/download/

  • 可自行选择系统对应的版本,下载完成后点击安装即可。

检验是否安装成功
打开终端,输入 node -v 出现版本号即表示安装成功

3. mysql
  • 进入mysql官网下载安装包,安装社区版的即可

https://dev.mysql.com/downloads/mysql/

image.png
  • mac用户可直接在“系统偏好设置里”启动mysql,(windows用户我还不是很了解,不过这个并不难,而且网上一大堆教程)然后打开终端,输入:

mysql -u root -p // 以root用户登录到数据库

  • 输入你的密码(密码也可以在系统偏好设置中设置),回车,即可进入数据库:

  • 常用mysql语句 ==>


    image.png

    image.png

    image.png
  • 表的约束条件


    image.png
  • 设置ID自增长 : AUTO_INCREMENT ( auto_increment )

项目准备

在这个项目中暂时使用了一个数据库和三个数据表
创建数据库:

create database BBS;

创建数据表:


image.png

image.png

image.png
  • mysql常见字段类型


    image.png

项目起步

  1. 创建项目目录: 在你计算机上的任意位置创建一个文件夹作为你的项目目录,文件夹路径最好不要有中文
  2. 新建app.js文件作文项目入口
  3. 打开终端,进入你的项目目录,初始化一个package.json文件, 命令如下:

npm init --yes

image.png
  • 没有这个文件就没地方放包了
  1. 下载koa:

npm install koa

  1. 下载一个帮助我们自动重启服务的工具包: nodemon(保存文件时自动重启)

npm install nodemon

6.配置使用nodemon:将之前的package.json文件配置成下图所示,你就可以直接在项目文件中使用 npm start 命令来启动服务,

image.png

  1. 使用你的文本编辑工具打开app.js文件,引包(我们之前下载好了koa,但是不将它引入就不能使用):

const Koa = require('Koa');
const app = new Koa();

  1. 开启本地服务,代码(注释)如下:
    image.png

    7.使用npm start,在浏览器中输入http://localhost:3000,你可以看到Hello World
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容