Skip to content

基于koa2, mongodb, redis技术栈,开发类似于知乎社区的restful服务

Notifications You must be signed in to change notification settings

Harhao/zhihu-server

Repository files navigation

logo

mongoose KoaJS typescript qiniu License


🎉技术栈

  • Koa2: Koa -- 基于 Node.js 平台的下一代 Web 开发框架。

  • TypeScript:通过在JavaScript的基础上添加静态类型定义构建而成的开源编程语言。

  • Mongoose: 为node.js设计的优雅mongodb对象模型库。

  • Redis: 连接Redis数据库快捷类库。


🎨运行环境


🔨环境搭建指引


注意事项:中国大陆如果想要域名访问绑定的主机,域名需要备案。如果购买中国香港节点,不需要走备案审核流程,比较方便。


✨ 流程图

process

📝目录结构

开发目录如下面解释所示:

├── app.ts 程序入口
├── commitlint.config.js //git hooks校验规则
├── config  //配置文件目录
│   ├── config.ts
│   └── db.ts
├── controller //控制器目录
│   ├── article.ts
│   ├── comment.ts
│   ├── common.ts
│   └── user.ts
├── docker-compose.yml 
├── dockerfile 
├── model  模型定义目录
│   ├── article.ts
│   ├── comment.ts
│   └── user.ts
├── package.json
├── package-lock.json
├── README.md
├── routes 路由目录
│   ├── article.ts
│   ├── comment.ts
│   ├── common.ts
│   └── user.ts
├── tsconfig.json
├── utils 帮助工具函数目录
│   ├── auth.ts // 权限校验函数
│   ├── email.ts // 邮件发送
│   ├── middleware.ts // 中间件配置
│   ├── oss-upload.ts // 七牛云对象储存函数工具
│   └── tools.ts // 帮助函数
└── yarn.lock

✨先前准备

需要相应的账号密码填写

# 监听端口
PORT=3000

# JWT加密秘钥
JWT_SECRET= xxx

# 数据库地址
DATABASE_URL=xxx

# 七牛云 ACCESS_KEY
ACCESS_KEY=xxx

# 七牛云 SECRET_KEY 
SECRET_KEY=xxx

# 七牛云 OSS-Space
UPLOAD_SPACE = xxx

# 域名1地址
DOMAIN=xxxx

# 网易邮箱发送
[email protected]
EMAILPASS=xxx

# redisLab
REDISHOST=xxx
REDISPORT=17781
REDISPASS=xxx
REDISPASS=8wLDeSdq6d522yY0BEVDSCiYp7QHw0pB

🚀运行命令

// 安装依赖
yarn

// 开发环境运行
yarn watch-server

// 打包部署环境产物
yarn build

// 运行生产环境资源
yarn serve

// 检查代码风格
yarn lint

//停止运行
yarn stop

💡参考文献

About

基于koa2, mongodb, redis技术栈,开发类似于知乎社区的restful服务

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published