Knowledge Dependence:
阅读文本前,你需要熟悉 Node.js 编程、Express 以及相关工具和常用中间件的使用。

Node.js 以其单线程异步非阻塞的特点,越来越被广大的 Web 后端开发者所喜爱,尤其是在构建高并发的 Web 服务时。而 Express 是 Node.js 开发中最受欢迎的 Web 框架之一。

本文分享一个作者自己用 Express4 写的供学习用的留言板应用。

所实现了的功能:

  • 登录、注册等基本用户操作;
  • 用户资料修改(update);
  • 留言与评论,以及它们的嵌套;
  • 长列表翻页;
  • 文件(头像)上传;
  • 用户权限:对留言的管理,删除自己的留言和评论、以及在自己留言下的其他人的评论;

相关技术点如下:

  • 数据库使用 MongoDB,并使用 Mongoose 进行具体操作;
  • session 写入到数据库中;
  • 使用 flash 进行操作反馈;
  • 留言与评论支持 markdown;
  • 使用 multer 中间件进行文件上传;
  • 使用 bluebird 进行 Promise 异步流程控制;
  • 使用 MVC 模式进行代码分层;

源代码地址:

GitHub - Maples7/MsgBoard: A tiny Message Board for 'MEN'(MongoDB + Express4 + Node.js) beginners!

参考:

《Node.js实战》

用 Express4 写一个简单的留言板的更多相关文章

  1. 手把手教你从零写一个简单的 VUE--模板篇

    教程目录1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 Hello,我又回来了,上一次的文章教会了大家如何书写一个简单 VUE,里面实现了VUE 的数据驱动视图 ...

  2. 用js做一个简单的留言板效果

    html部分: 1: <!DOCTYPE> 2: <html lang="zh-en"> 3: <head> 4: <title>j ...

  3. 写一个简单的HTML留言板

    最近有点懒,没码什么字,防止遗忘,从头开始码,写一个简单的HTML留言板.包含两个文件,book.html还有style.css,放在同一目录下. book.html 1 <!DOCTYPE h ...

  4. 手把手教你从零写一个简单的 VUE

    本系列是一个教程,下面贴下目录~1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 今天给大家带来的是实现一个简单的类似 VUE 一样的前端框架,VUE 框架现在应 ...

  5. Java写一个简单学生管理系统

    其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...

  6. 利用SpringBoot+Logback手写一个简单的链路追踪

    目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简 ...

  7. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  8. 如何写一个简单的http服务器

    最近几天用C++写了一个简单的HTTP服务器,作为学习网络编程和Linux环境编程的练手项目,这篇文章记录我在写一个HTTP服务器过程中遇到的问题和学习到的知识. 服务器的源代码放在Github. H ...

  9. 如何写一个简单的shell

    如何写一个简单的shell 看完<UNIX环境高级编程>后我就一直想写一个简单的shell来作为练习,因为有事断断续续的写了好几个月,如今写了差不多来总结一下. 源代码放在了Github: ...

随机推荐

  1. 关于tomcat内路径跳转的一些思考

    初学jsp+servlet时经常碰上的几个错误:404.路径正确但页面没有任何内容.样式和图片丢失. 这几个错误曾经让我在debug时头大,现在总结一下,其实它们都跟路径有关,正是因为没有处理好路径跳 ...

  2. 2015-01-19 .Net 软件工程师 笔试题

    填空题 1.String是__类型(值类型或引用类型) 2.int的基类是__ 3.实现__的类,可以应用foreach语句 4.要输出一段XML文档,用__类来实现能够确保输出正确格式的XML,输出 ...

  3. 工作需求----表单select多选交互

    由于工作需求接触select框多选的情况,以下是我分享的代码,主要是进入页面默认选中.支持多选属性: 1.html内容 multiple=”multiple” 属性为多选属性 <div clas ...

  4. DEVEXPRESS控件使用技巧记录-GRIDCONTROL

    1. 存在父子表的时候,只允许父表的一条记录展开,其他记录都收起 方法:Feature Browser -> Master-Detail -> behavior -> AllowOn ...

  5. tomcat重启脚本

    #!/bin/bashPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binexport JAVA_HOME=/opt/jd ...

  6. Git & GitHub

    使用 Git 和 GitHub 有一段时间了,总结下经验. 起初接触 Git 是先遇到 GitHub 的,当时傻傻分不清这两者的区别,毕竟名字都那么像,刚开始只想用酷酷的方法 clone 代码(SSH ...

  7. js判断是否是移动端 访问移动端网址

    1以下为代码,可放置在网站foot底部文件,或者haead顶部文件,建议将代码放在网站顶部,这样可以实现手机访问立即跳转! <script src="http://siteapp.ba ...

  8. Haskell Platform (windows)

    一.下载地址:https://www.haskell.org/platform/windows.html Haskell Platform 整合了 Glasgow Haskell Compiler,W ...

  9. Eclipse 常用快捷键

    Ctrl + Shift + L  : 可以查看快捷键方式 Ctrl + 1 : 快速修复 Ctrl + / : 注释当前行 Ctrl + D : 删除当前行 Shift + Enter : 可以在当 ...

  10. Nutch2.x

    http://www.micmiu.com/opensource/nutch/nutch2x-tutorial/