nodejs实战案例(Express框架+mongoDB)之2:安装框架,数据库,插件以及数

1. 首先安装好最基本的nodejs和mongodb

nodejs很好安装:http://www.nodejs.org 直接官网install安装到本机

mongodb相比nodejs麻烦一点:http://www.mongodb.org 直接安装,然后需要打开终端指定数据存储目录(这里建议百度和google搜索一下安装教程,我这里当时折腾了一会才弄好,开启自动启动我还不会弄,所以我每次都是手动启动)

手动启动办法很简单:指定到mongodb文件夹目录/bin 找到mongod 双击运行就可以了(这里mac和window都是一样直接到目目录点击文件启动)。

2. 安装Express

打开终端,输入:npm install -g express

npm 是node的一个安装东西的方法

-g 表示全局安装express 插件

3. 新建一个工程,使用ejs摸版引擎

window下例如新建到d: 盘

windows 下打开 cmd 切换到 D 盘,输入 express -e ejs know

mac下也是cd 到指定目录,输入 express -e ejs know

mac下出现:

备注:mac下我安装了一个iTerm 代替原本的终端,所有下面看着是黑色的

 

  表示新建成功,我们需要继续安装新建模块里面需要的一些插件:

打开know/package.json

看到下面代码:

“dependencies”: {

“express”: “3.2.6”,

“ejs”: “*”

}

表示这个框架需要依赖express插件和ejs插件

下面我们使用node 的安装方法npm:

首先在终端输入 cd know

回车后继续 npm install

这里表示安装package.json文件里面需要的插件

 

  表示安装成功

回车后输入node app

终端出现:Express server listening on port 3000

浏览器打开:localhost:3000

浏览器出现

Express

Welcome to Express

这表示Express安装成功了

4. 安装我们会需要到的插件:

下面这个是我做完一次后,package.json中整个需要的所有插件:

 

  在package.json的”dependencies”: {} 改为一下内容:

“express”: “3.3.1”,

“ejs”: “*”, //摸版引擎

“mongodb”: “*”, //连接mongodb的插件

“connect-mongo”: “*”,//会话支持

“connect-flash”: “*”, //页面通知插件

“request”: “*”, //爬虫抓取时的一个插件

“cheerio”: “*”, //爬虫抓取时的一个插件

“socket.io”: “*”, //在线实时交流的一个插件

“gm”: “*”, //国外一个需要依赖 电脑安装ImageMagick 的插件,处理图片,压缩,剪裁等

“node-images”: “*” // 国内一个不需要依赖处理图片的插件

我们先集中安装:

在package.json中添加上面插件,然后npm install

安装时间有点长,有时候会可能会没安装成功(我之前就有几次没安装成功),就继续npm install 尝试几次

检查是否安装成功的办法很简单:

对照下 node_modules 文件下的目录是不是下面图片里面一样,有没有缺少的,缺少的就表示安装失败

 

  5. 安装gm插件的一个依赖包imagemagick:

window用户可以到http://www.imagemagick.org/script/index.php 下载window 的exe 文件安装(一直点击下一步即可)。安装好就可以配合gm实用了,不需要任何配置。window下安装好还会是一个图片处理的小软件。

mac 建议直接 http://cactuslab.com/imagemagick/ 下载安装第一个和第二个(两个都安装) With XQuartz support 版本的 ,一键安装。也是安装好就可以配合gm使用了。

6.连接数据库

在konw目录下建一个 settings.js 文件

内容如下:

module.exports = { cookieSecret: ‘myKonw’, db: ‘know’, host: ‘localhost’ };

cookieSecret cookie的一个什么设置,暂时我还不了解

db是数据库的名称

host是数据库的地址

在konw目录下再建一个文件夹

内容如下:

var settings = require(‘../settings’),

Db = require(‘mongodb’).Db,

Connection = require(‘mongodb’).Connection,

Server = require(‘mongodb’).Server;

module.exports = new Db(settings.db, new Server(settings.host, Connection.DEFAULT_PORT, {}), {safe: true});

这段就是连接数据库不需要了解太多,很多项目中可以直接复制使用,

但是下面还是将我当时看的参考资料引用出来:

———————————–以下为引用————————————————————

首先我们需要在node.js下安装mongodb争对node的驱动。

npm install mongodb

下面就可以开始写代码了。首先当然是在node代码引用mongodb:

var mongodb = require(“mongodb”);

其次就是连接到mongodb数据库server:

var server = new mongodb.Server(‘localhost’,27017,{auto_reconnect:true});

其中第一、二分参数分别是IP地址和端口,由于我们这里没有设计到验证,因此便不需要验证参数。最后的参数是一个对象,我们设置了一个属性auto_reconnect为true,就表示如果当程序与mongodb失去连接便回自动重连。

var server = new mongodb.Server(‘localhost’,27017,{auto_reconnect:true},10);

通常情况下我们可以不管最后一个参数,这个参数是线程池的数量,系统默认的设置是5,也就是说可以同时支持打开5个数据库连接,并进行操作。当然我们可以根据自己需要设置希望的值。

然后就是获取或者创建一个DB实例。

var db = new mongodb.Db(“mydb2”,server);

————————————————————————————————————

引用来源:http://toozhao.com/2012/10/nodejs-mongo-one/

7. 安装会话支持配合mongodb

会话支持对应connect-mongo插件

打开app.js, 在 , path = require(‘path’) 后添加以下代码:

, MongoStore = require(‘connect-mongo’)(express)

, settings = require(‘./settings’);

在 app.use(express.methodOverride()); 后添加:

app.use(express.cookieParser());

app.use(express.session({

secret: settings.cookieSecret,

key: settings.db,

cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days

store: new MongoStore({

db: settings.db

})

}));

其中 express.cookieParser() 是 Cookie 解析的中间件。express.session() 则提供会话支持,secret 用来防止篡改 cookie,key 的值为 cookie 的名字,通过设置 cookie 的 maxAge 值设定cookie的生存期,这里我们设置 cookie 的生存期为30天,设置它的 store 参数为 MongoStore 实例,把会话信息存储到数据库中,以避免丢失。我们可以通过 req.session 获取当前用户的会话对象,以维护用户相关的信息。

下面检测mongodb是否安装成功:

终端cd到know: node app

然后查看mongodb是否有新的数据库:

我mac上使用的是mongoHub

如下图:

 

  左侧有一个know 的文件,就表示连接成功。

window 可以安装:http://www.mongovue.com

8. 前端框架

使用的是http://www.bootcss.com

Bootstrap这个不用做太多介绍了

9. 前端摸版

我用的underscore 中的一个摸版引擎,这个可以用在前端和node上,很给力

这个我之前有写过详细介绍,参考:Underscore.js实用功能template模板

10. 调试技巧

nodejs可以直接在Chrome下面调试,设置断点。和调试前端没有什么差别。

nodejs在线调试工具node-inspector

nodejs每次修改完需要重启,可以使用supervisor

nodejs调试避免重新启动的supervisor插件用法

ps: 上面调试的有的需要管理员权限

未经允许不得转载:前端撸码笔记 » nodejs实战案例(Express框架+mongoDB)之2:安装框架,数据库,插件以及数

上一篇:

下一篇: