2015年12月12 Node.js实战(一)使用Express+MongoDB搭建多人博客
序,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模板引擎
- 通过app.set('view engine', 'ejs');设置使用ejs模板引擎。
- 通过app.set('views', path.join(__dirname, 'views'));设置了模板文件的存储位置。
- 同过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搭建多人博客的更多相关文章
- nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客
GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...
- 设计node.js搭建多人博客的思路(不讲数据库)
1.1.4:搭建多人博客 1.功能分析 搭建一个简单的多人注册,登录,发表文章及登出功能的博客 2.设计目标 未登录:主页左侧导航显示home.login.register,右侧显示已发表文章,发表日 ...
- 基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统
很久没更新博客,最近也有点忙,然后业余时间搞了一个比较完整基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统的流程系统,希望对 ...
- MongoDB + express + node + bootstrap 搭建多人博客
这篇博客讲述如何搭建一个多人博客,需要一定的基础知识,用于思路整理和备忘. 第一步: 新建文件夹 blog ,结构如下: bin --- 可执行二进制文件,最终的启动接口. models --- 存储 ...
- 7.搭建hyperledger fabric环境及启动——2019年12月12日
2019年12月12日13:05:16 声明:从网络中学习整理实践而来. 1.介绍fabric Fabric 是一个面向企业应用的区块链框架,基于 Fabric 的开发可以粗略分为几个层面: 1. 参 ...
- 《Node.js实战(双色)》作者之一——吴中骅访谈录
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源
视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...
- MVP社区巡讲 12月5日北京站| 12月12日上海站
2015年底的社区巡讲Powered MVP Roadshow正式启动啦!12月5日周六下午北京场,12月12日周六下午上海场. 欢迎各位邀请您的同事朋友来参加MVP的社区活动,也邀请您发送活动信息( ...
- 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 ...
随机推荐
- hdu 5233 离散化
10^9的大数组显然开不了.所以也算比较裸的离散化了... 令pos[i].pp[j]表示从左到右第j个高度为i的树的位置 (pp是个vector,范围0..now-1) pos[i].num表示有几 ...
- TrustedInstaller管理权限
TrustedInstaller.exe实际上是“Windows Modules Installer”这个服务的进程,路径位于C:\Windows\servicing\TrustedInstaller ...
- 谈谈favicon和他带来的问题
favicon.ico介绍 favicon.ico是个什么东西呢,也许见得太多都习以为常了(我就是这样,直到写这篇文章之前才知道),看看维基百科的解释: Favicon是favorites icon的 ...
- Xpath用法
在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构), 利用其lxml.html的xpath对html进行分析 ...
- 公共事件处理函数js库
var EventUtil = { /* *添加事件处理 参数:元素对象 事件类型 处理函数 */ addHandle: function (element, type, handle) { //do ...
- 安装和使用Linux花生壳(公网版)
一.安装说明 1.下载相应的安装包,安装程序 2.运行程序.配置程序(默认使用/etc/phlinux.conf,如果不存在这个文件则自动进入交互配置) [root@localhost -]# phd ...
- Nginx个人简单理解
首先我们来补充下一些基本知识: 什么是代理服务器? 先举个简单的例子,现在我们在百度访问谷歌的网站,发现现在进不去,这个时候我们可以FQ(关于FQ,可以借鉴下这个博文:http://zhangge.n ...
- ubuntu默认防火墙
ubuntu 9.10默认的是UFW防火墙,已经支持界面操作了.在命令行运行ufw命令就可以看到提示的一系列可进行的操作. 最简单的一个操作:sudo ufw status可检查防火墙的状态,我的返回 ...
- 《Java疯狂讲义》(第3版)学习笔记 1 - 如何学习Java
1.Java是一种面向对象语言,不要简单当做脚本使用.从基础学起,不要从Spring.J2EE.Hibernate和EJB开始学. 2.不要浮躁,应该扎扎实实先学好Java语言,然后按Java本身的学 ...
- 比较oracle数据的表结构
对比不同用户对象的异同,同时生成sql语句或直接提交到数据库,powerdesinger的比较实在是麻烦. pl/sql为我们提供了很好的工具 在pl/sql中的工具下“比较用户对象”,下即可实现: