定义

Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。

MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

环境安装:基于Mac OS X系统

nodejs的安装非常简单,去官网下载安装文件进行安装即可,同时自带了npm(node package manager)工具。

mongodb的安装稍微有点复杂,需要用到homebrew。homebrew 简称brew,是Mac OS X上的软件包管理工具,以最简单和灵活的方式,在 Mac OS X 安装 linux 工具包。

第一次安装homebrew,打开终端,输入以下命令

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果以前安装过homebrew,记得更新homebrew

brew update

安装mongodb

brew install mongodb

创建数据存放目录

mkdir -p /data/db

运行mongodb

mongod

出现异常:文件夹目录拒绝访问,权限不够。

2015-12-05T10:12:49.585+0800 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
 2015-12-05T10:12:49.586+0800 I CONTROL  [initandlisten] dbexit:  rc: 100

解决方法:需要手动将文件夹的权限设置为读和写。选中文件夹data、db,快捷键command+opition+i,弹出文件夹的简介,修改其中everyone的权限为读和写。

启动mongodb后台管理

mongo

出现异常:不能连接mongodb,连接失败。

MongoDB shell version: 3.0.7
connecting to: test
2015-12-05T11:24:01.021+0800 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
2015-12-05T11:24:01.025+0800 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed

原因:Mac OS X系统没有自启动mongodb服务。

brew services start mongodb

国内的问答社区,解决不了问题。只能访问:来自stackoverflow的问答。缺点是:国内的访问速度有点慢,甚至打不开。

如何在windows中添加mongodb服务

mongod --dbpath "C:\data\db" --logpath "C:\data\log\MongoDB.log" --install --serviceName "MongoDB"

nodejs如何访问mongodb数据库?

首先得通过npm安装mongoose模块。

$npm install mongoose

mongoose是为nodejs而生的mongodb对象建模工具,可以定义一些Schema(定义每个doc里的字段名、类型、初始值、验证条件等),增删改查等,功能比较强大。

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Cat = mongoose.model('Cat', {
    name: String
});
var kitty = new Cat({
    name: 'Zildjian'
});
kitty.save(function(err) {
    if (err) // ...
    console.log('meow');
});

如上面的示例,运用.save的方法,就可以将kitty的数据保存到本地test的数据表。

项目开发
后端框架
前后端交互
路由
配置文件

概述

hexo是一种静态博客框架,无需数据库。可以用MarkDown语言来撰写自己的博客,最后生成静态页面,在github上生成github page,向别人展示自己的博客,其实更像是自己的笔记,只不过的笔记展示的效果比以前的word好了很多。

而wordpress不太一样,它是动态的博客框架,采用的php+mysql的方式,可以管理权限,别人访问可以点赞、留言、评论以及分享。

缺点:安装复杂,无法跟来访者实现互动。

所以说:用hexo实现个人简介、作品展示、技术分享等等页面的展示,以及markdown语言写出来的博文,排版的可读性的非常好,最后放到github page上是再好不过的了。

安装环境

因为以前安装过程中,遇到过一些错误。所以今天又重新安装了一遍,确保整个安装过程是没有问题的。
首先要安装git:http://git-scm.com/download。这个在部署到github上会用到。
然后安装node.js:https://nodejs.org 。因为hexo框架是基于node.js的,并且node.js安装包里包含了npm(node package manager),用来安装hexo。

命令行

在全局的环境下安装hexo-cli
npm install hexo-cli -g
初始化一个名叫blog的文件夹
hexo init blog
进入blog的目录下
cd blog
安装hexo所需的包
npm install
安装配置git的所需的包
npm install hexo-deployer-git –save
新建一个.md的文件
hero new [type] title
在本地启动服务(localhost:4000)
hexo server
生成静态网页
hexo generate
部署到git上(提前需要到_config.yml进行deploy属性的配置)
hexo deploy
如果顺利完成上面的操作的话,就可以在你的github上面看到自己的仓库里已经有文件了。点击设置,就可以看到你的github page了。
官方的文档:http://hexo.io/docs/