Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JsNav

使用Express+mongoDB搭建的多人blog系统

预览地址: http://www.jsnav.top

文件目录:

├── index.js(程序主文件)
├── package.json(项目名、作者、依赖等信息)
├── .gitignore
├── models(存放操作数据库的文件)
|    |—— users.js
|    |—— posts.js
|    |—— comments.js
|—— pubilc(存放静态文件,如样式、图片等)
|    |—— css
|        |—— style.css
|    |—— img(存放服务器图片)
|    |—— js
|        |—— index.js
├── routes(存放路由文件)
|    ├── index.js
|    ├── posts.js
|    |—— comments.js
|    ├── signin.js
|    ├── signout.js
|    |—— signup.js
|—— config(配置信息)
|    |—— default.js
|—— lib
|    |—— mongo.js
|—— middlewares
|    |—— check.js
|—— logs
|    |—— error.log
|    |—— success.log
|—— views(存放模板文件)
|    |—— edit.ejs
|    |—— post.ejs
|    |—— signin.ejs
|    |—— create.ejs
|    |—— header.ejs
|    |—— footer.ejs
|    |—— signup.ejs
|    |—— posts.ejs
|    |—— 404.ejs
|    |—— component
|        |—— nav.ejs
|        |—— nav-setting.ejs
|        |—— notification.ejs
|        |—— post-content.ejs 
|        |—— comments.ejs

我们遵循了 MVC(模型(model)-视图(view)-控制器(controller/route)) 的开发模式。

功能:

  • 登陆
  • 注册
  • 登出
  • 上传头像
  • 发表文章
  • 修改文章
  • 留言
  • 评论
  • 添加个人主页
  • 分页
  • 标签
  • 二级评论

部分截图

PC端 注册 登陆

博客首页

博客文章页

博客发表页

手机端

主页

发表页

个人中心

文章

注册页

登陆页

Error log

  • 出了Bug,仔细看Error log.
  • 注册是图片必须上传(要放在public/img下),否则会报错 Callback must be a function
  • 仔细阅读教程,可以减少很多低级错误。
  • 删除功能有bug
  • js文件的压缩混淆
  • 改为更流行的Mongoose操作数据库的形式
  • 访问时改为更常见的用户名形式 /blog/用户名/blog
  • 设置了一个默认头像,public/img/avatar.png
  • 这里的许多查询都用了callback形式,似乎不太合适,待完善修改
  • 一对多查询,根据用户查相关blog ,方法是在blog中查公共的'author'字段'
  • 注意!!crud在后端都是异步的,连续操作结果不对,注意下是不是因为异步结果未返回
  • 时间字符串格式化,难过的哭泣,网上都没查到.mongoose的timestamps,createdAt无法格式化,即在模版里展示默认的createdAt,怎么格式化都无效.这里另设了一个属性替代createdAt,才实现

##使用 pm2

pm2 是 Node.js 下的生产环境进程管理工具,就是我们常说的进程守护工具。

下载pm2

npm install pm2 -g

修改 package.json,添加 start 的命令:

package.json

"scripts": {
  "test": "istanbul cover _mocha",
  "start": "cross-env NODE_ENV=production pm2 start index.js --name 'myblog'"
}

然后运行 npm start 通过 pm2 启动程序,如下图所示 :

也可直接运行:

NODE_ENV=production pm2 start index.js --name 'myblog'

pm2 常用命令:

pm2 start/stop: 启动/停止程序
pm2 reload/restart [id|name]: 重启程序
pm2 logs [id|name]: 查看日志
pm2 l/list: 列出程序列表

启动项目:

npm install

npm install pm2 -g

npm start

在此鸣谢作者提供的教程:N-blog

About

使用Express+mongoDB搭建的多人blog系统

Resources

Stars

16 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages