{"id":13677490,"url":"https://github.com/lfb/nodejs-koa-blog","last_synced_at":"2025-05-15T13:06:53.985Z","repository":{"id":40673013,"uuid":"135524151","full_name":"lfb/nodejs-koa-blog","owner":"lfb","description":"基于 Node.js Koa2 实战开发的一套完整的博客项目网站","archived":false,"fork":false,"pushed_at":"2024-09-09T07:11:33.000Z","size":42539,"stargazers_count":1821,"open_issues_count":101,"forks_count":461,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-04-11T21:49:07.737Z","etag":null,"topics":["blog","element-ui","koa","koa2","koa2-vue","mysql","node","node-blog","nodejs","nuxtjs","nuxtjs-project","vue","vuejs"],"latest_commit_sha":null,"homepage":"https://www.boblog.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lfb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-31T02:59:49.000Z","updated_at":"2025-04-09T08:34:49.000Z","dependencies_parsed_at":"2024-01-14T14:31:27.915Z","dependency_job_id":"700c1e76-ad42-4771-8e5c-b23691297c38","html_url":"https://github.com/lfb/nodejs-koa-blog","commit_stats":{"total_commits":89,"total_committers":2,"mean_commits":44.5,"dds":"0.011235955056179803","last_synced_commit":"4404e2628fa5fdf94c0fbd236a6b2b6e98b3daae"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfb%2Fnodejs-koa-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfb%2Fnodejs-koa-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfb%2Fnodejs-koa-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfb%2Fnodejs-koa-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lfb","download_url":"https://codeload.github.com/lfb/nodejs-koa-blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","element-ui","koa","koa2","koa2-vue","mysql","node","node-blog","nodejs","nuxtjs","nuxtjs-project","vue","vuejs"],"created_at":"2024-08-02T13:00:42.967Z","updated_at":"2025-05-15T13:06:52.455Z","avatar_url":"https://github.com/lfb.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"## 一、简介\n\n这里是一个基于 Node.js 开发的博客项目，采用了轻量级的 Koa 框架来构建 API 接口。\n\n通过这个项目，你可以轻松搭建一个简洁高效的博客系统，亲身体验 Node.js 的开发便捷性，深入了解功能强大的 Koa2 中间件，掌握数据如何在前后端之间流转并存储\n到 MySQL 数据库中。\n\n这个项目非常适合想学习 Node.js 的朋友，以及希望使用 Node.js 构建个人博客的人，也可以作为计算机专业毕业论文的理想实践项目。\n\n**项目功能包括：**\n\n-   基于 Node.js + Koa.js 的服务端 API 接口：[nodejs-koa-blog](https://github.com/lfb/nodejs-koa-blog)\n-   管理后台（Vue.js / React.js）：[vue-blog-admin](https://github.com/lfb/vue-blog-admin),\n    [react-blog-admin](https://github.com/lfb/react-blog-admin)\n-   前端网站（Vue.js / Nuxt.js）：[nextjs-blog](https://github.com/lfb/nextjs-blog)，[nuxtjs-blog-web](https://github.com/lfb/nuxtjs-blog-web)\n-   使用 PM2 进行部署\n\n### 二、技术优点\n\n#### 2.1 项目架构\n\n设计了清晰的分层架构，使项目结构一目了然，便于维护和扩展。\n\n#### 2.2 项目工程化\n\n采用了完整的工程化配置，提高开发效率。包括 eslint 代码规范、环境变量管理、参数自动校验、中间件错误处理等，确保项目开发和运行的高效性和稳定性。\n\n#### 2.3 功能简洁且完善\n\n项目实现了功能全面的博客系统，设计简洁但功能完备，涵盖以下模块：\n\n**核心功能**：\n\n-   管理员权限管理\n-   文章分类管理\n-   文章内容管理\n\n**重要功能**：\n\n-   数据库操作\n-   图片上传与存储\n-   Markdown 支持与存储\n-   日志记录\n-   API 文档生成\n-   单元测试\n\n## 三、使用\n\n**3.1.克隆项目代码**\n\n```\nhttps://github.com/lfb/nodejs-koa-blog.git\n```\n\n**3.2.创建数据库**\n\n启动项目前一定要在创建好 boblog 数据库，如果你还没安装上数据库，请点击[MySQL 下载](https://dev.mysql.com/downloads/mysql/)，请在根目录下\n的`.env.development `文件下修改您本地的数据库名字（DB_NAME）和数据库密码 ( DB_PASSWORD )。\n\n```\n# env.development / env.production 文件\n# 数据库\n\nDB_NAME = 'boblog'\nDB_HOST =  'localhost'\nDB_PORT = 3306\nDB_USER = 'root'\nDB_PASSWORD = 'bobo1024.'\n```\n\n以下是执行数据库命令：\n\n```\n# 登录数据库\n\nmysql -uroot -p密码\n\n# 创建 boblog 数据库\n\nCREATE DATABASE IF NOT EXISTS boblog2\nDEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n```\n\n**3.3.启动项目**\n\n-   Node.js：v14.15.0（建议v14版本及以上\\~）\n\n```\n# 进入项目根目录\n\ncd nodejs-koa-blog\n\n# 安装依赖包\n\nnpm install 或者 yarn install\n\n# 启动 Node.js Koa2 项目\n\nnpm run dev 或者 yarn dev\n```\n\n你会看到控制台输出启动地址：`http://localhost:5000 `，就成功了！\n\n## 四、FAQ\n\n4.1. 没有yarn环境，npm 可以吗？\n\n\u003e 答：可以的，建议使用 yarn，yarn 比 npm 速度快，主要是安装版本统一。\n\n4.2. 启动 Koa2 项目报错，请问原因？\n\n\u003e 答：首先，请检查一下使用 npm 或 yarn 安装依赖包没。然后，再请检查一下确保安装好数据库，新建好数据库：boblog，请看上面的数据库配置。最后看下启动 \\\u003e\n\u003e 打印日志是否有报错的信息。\n\n4.3. ... 更多问题请到 [Issues](https://github.com/lfb/nodejs-koa-blog/issues) 查阅，或者有问题请到\n[Issues 提问](https://github.com/lfb/nodejs-koa-blog/issues/new)。\n\n## License\n\n[MIT](https://github.com/lfb/nodejs-koa-blog/blob/master/LICENSE), by LFB\n\n喜欢或对你有帮助的话，请你点一个星星 \u003cstrong style=\"color:red;\"\u003estar\u003c/strong\u003e 鼓励我，或者您有更好的建议和意见，请提出来告知我，可以留言\n[Issues](https://github.com/lfb/nodejs-koa-blog/issues/new)。希望能够帮助到你学习！Thanks！共勉！\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfb%2Fnodejs-koa-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flfb%2Fnodejs-koa-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfb%2Fnodejs-koa-blog/lists"}