序,Node是基于V8引擎的服务器端脚本语言。

基础准备

Node.js:

Express:本文用的是3.21.2版本,目前最新版本为4.13.3,Express4和Express3还是有较大区别,可以去官网查看wiki:https://github.com/strongloop/express

MongoDB:

一、使用Express搭建一个站点

1 快速开始安装Express

Express是Node上最流行的Web开发框架,通过它可以快速开发一个Web应用。全局模式下输入命令:

$ npm install -g express@3

2 新建一个工程

我们把工程建立在D盘目录,cmd进入D盘,输入:

$ express -e blog

然后输入:

$ cd blog & npm install

安装需要的模块(站点中添加模块时会经常用到这个命令)

3 启动站点

全局模式下输入:

$ node app

此时命令行显示Express server listening on port 3000,浏览器访问localhost:3000,即可看到如下:

4 Express工程目录结构

app.js:入口文件

package.json:工程信息和依赖模块

node_modules:存放package.json中安装的模块

public:存放image/css/js等文件

routes:存放路由文件

views:存放试图文件,或者说模板文件

5 路由控制

express封装了多种http请求,主要使用GET和POST,即app.get() 和 app.post()。

app.get() 和 app.post()的第一个参数为请求的路径,第二个参数为处理请求的回调函数,分别是req和res,代表请求信息和响应信息:

app.get('/',function(req, res){
res.render('index',{title:'Express 123'});
}

处理请求的几种方式如下:

req.query:处理get请求,获取get请求参数

req.body:处理/:xxx形式的get或post请求,获取请求参数。

req.params:处理post请求,获取post请求体。

req.param():处理get和post请求,但查找优先级由高到低为req.params->req.body->req.query

6 ejs模板引擎

模板引擎是一个将页面模板和要显示的数据结合起来生成HTML页面的工具。

本文中采用的是ejs模板引擎

    1. 通过app.set('view engine', 'ejs');设置使用ejs模板引擎。
    2. 通过app.set('views', path.join(__dirname, 'views'));设置了模板文件的存储位置。
    3. 同过res.render('index',{title:'Express 123'});渲染模板,并将其产生的页面直接返回给客户端。第一个参数index是模板的名字,省略了.ejs扩展名,第二个参数{title:'Express 123'}是数据对象

7 ejs的标签系统

只有三种标签

<% code %> 显示JS代码
<%= code %> 显示原始HTML内容
<%- code %> 显示替换过HTML特殊字符的内容

注意:当code为普通字符时,<%= code %>和<%- code %>结果相同。

当code为 <h1>hello</h1>时,<%= code %>会原样输出为<h1>hello</h1>,<%- code %>则会显示为一级标题格式的hello字符串。

8 ejs的include

index.ejs

<%- inclue a %>
hello,world!
<%- inclue b %>

a.ejs

this is a.ejs

b.ejs

this is b.ejs

最终index.ejs会显示为:

this is a.ejs

hello,world!

this is b.ejs

二、搭建多人博客

1 安装MongoDB数据库

下载路径:https://www.mongodb.org/downloads,服务器在美国,可能需要多刷新几次才能打开。

下载安装包解压到D盘根目录,并重命名为mongodb,并在mongodb文件夹里新建blog文件夹,存放博客内容的数据文件。

打开命令行,切换到d:\mongodb\bin目录下,然后输入:

mongodb -dbpath d:\mongodb\blog

以上命令的意思是:设置blog文件夹作为我们工程的存储目录并启动数据库。为了方便以后使用数据库,我们在桌面上新建启动mongodb.bat,并写入:

d:\mongodb\bin\mongod.exe -dbpath d:\mongodb\blog

这样以后就可以在桌面启动mongodb.bat。就可以启动数据库了

2 未完待续。。。

未完待续。。。

2015年12月12 Node.js实战(一)使用Express+MongoDB搭建多人博客的更多相关文章

  1. nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客

    GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...

  2. 设计node.js搭建多人博客的思路(不讲数据库)

    1.1.4:搭建多人博客 1.功能分析 搭建一个简单的多人注册,登录,发表文章及登出功能的博客 2.设计目标 未登录:主页左侧导航显示home.login.register,右侧显示已发表文章,发表日 ...

  3. 基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统

    很久没更新博客,最近也有点忙,然后业余时间搞了一个比较完整基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统的流程系统,希望对 ...

  4. MongoDB + express + node + bootstrap 搭建多人博客

    这篇博客讲述如何搭建一个多人博客,需要一定的基础知识,用于思路整理和备忘. 第一步: 新建文件夹 blog ,结构如下: bin --- 可执行二进制文件,最终的启动接口. models --- 存储 ...

  5. 7.搭建hyperledger fabric环境及启动——2019年12月12日

    2019年12月12日13:05:16 声明:从网络中学习整理实践而来. 1.介绍fabric Fabric 是一个面向企业应用的区块链框架,基于 Fabric 的开发可以粗略分为几个层面: 1. 参 ...

  6. 《Node.js实战(双色)》作者之一——吴中骅访谈录

  7. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源

    视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...

  8. MVP社区巡讲 12月5日北京站| 12月12日上海站

    2015年底的社区巡讲Powered MVP Roadshow正式启动啦!12月5日周六下午北京场,12月12日周六下午上海场. 欢迎各位邀请您的同事朋友来参加MVP的社区活动,也邀请您发送活动信息( ...

  9. 2016年12月12日 星期一 --出埃及记 Exodus 21:7

    2016年12月12日 星期一 --出埃及记 Exodus 21:7 "If a man sells his daughter as a servant, she is not to go ...

随机推荐

  1. UOJ149 【NOIP2015】子串

    本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! [问题描述]有两个仅包含小写英文字母的字符串 A ...

  2. Linux Process Management && Process Scheduling Principle

    目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...

  3. duxcms SQL Injection In /admin/module/loginMod.class.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 duxcms是一款采用PHP开发,基于HMVC规则开发适合中小企业.公司.新闻.个 ...

  4. jpa和hibernate注解

    http://www.objectdb.com/api/java/jpa/JoinColumns 用hibernate和jpa annotation 大概一年多了,今天闲来无事,对他们关联关系元数据写 ...

  5. ExceptionLess新玩法 -- 审计日志

    审计日志 这算是一个挺酷的功能,把每个请求都记录下来,之前在abp中看到过这个功能,配合可视化的界面,简直是在装逼 看到了exceptionless后,心念一动,我也可以根据它做一个审计日志的功能.这 ...

  6. C/C++ 程序的build过程

    (This article is under constant construction) DISCLAIMER: 本文的主要内容来自https://gcc.gnu.org/onlinedocs/gc ...

  7. Algorithmic Graph Drawing in TikZ

    最近在写模板时需要画个图 ("图论"的"图"). 本来打算用Windows画图 (mspaint) 的, 但是效果不好, 还是决定用LaTeX的TikZ画. 这 ...

  8. Visual Studio原生开发的10个调试技巧

    这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧.我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧.(如果你是工作在托 ...

  9. iOS - 类簇

    类簇是在Objective-C中Foundation Framework中广泛使用的一种设计模式 1.发现类簇(Class Cluster)的踪迹 //*> 执行下面代码 id obj1 = [ ...

  10. 快捷键&小技巧&备忘录

    shift+鼠标滚轮:实现左右移动 alt+鼠标左键双击:打开属性 chrome中在F12下的Element中,可以先选中某一项,可以直接按住F2进行编辑 chrome中element的右下方我们可以 ...