node.js + mongodb

想写博客很长时间了,由于一直身患懒癌,因此一直拖到了如今。markdown的语法也是刚刚学,试验一下效果
好了不说了,直接上干货了。
------------------------------------------------------------------------------------------------css

1.准备工做

Nodejs、express和mongodb的安装(这里安装的都是最新版的)html

### 安装: ###
Nodejs的安装没什么说的。不过安装完以后测试是否成功用过原来版本的同窗可能会有一些问题。
原来的版本是:$ node -v 新版不在支持$,直接在命令行中:node -vnode

安装最新版的express以后,须要在安装:express-generator //express命令工具,不少初学者都会遇到这个问题(固然我也是)
mongodb的安装下面会讲解到。git

用express建立一个项目的框架。 

这个我建立一个名字叫chihou的网站,用的模板引擎是ejs。github

>express -e chihuomongodb

-e表示ejs模板引擎,不写 -e 默认的建立jade模板引擎数据库


而后在输入:
    cd chihuo //进入到你建立的项目目录
    npm install //读取根目录中的package.json文件而后安装项目所依赖的包express

而后经过cmd命令行 cd 到 chihuo 的目录下 
>node appnpm

这样就启动项目了。json

提示1:若是不能启动项目:看看app.js文件中没有监听端口。若是没有,
在 module.exports = app; 语句以前添加app.listen(3000);

提示2:Ctrl + c 终止运行

而后咱们能够在浏览器地址栏里敲入 http://127.0.0.1:3000/ 或者 http://localhost:3000 
这就是你的第一个express建立的node app。

到这里你就完成了项目的重要的一步。

以后的讲解 咱们从目录开始

--node_modules 项目中依赖的包
--public 公共资源放的目录
--routes 学名 路由,里面放着一些路由文件
--views 放着就是页面文件了
--app.js 项目的入口文件。固然你也能够改为其余的名字。

2.如今基本的结果已经有了,以后就是建立数据库了

mongodb的安装

这里只介绍window的安装
在官网上下载zip,这个我装在D盘的mongodb目录下

1.在D盘中建立mongodb文件夹而后把下载的包解压后把其中的bin文件夹拷贝到建立的mongodb文件夹中,
2.而后在mongodb文件夹中建立一个data文件夹,再在data文件夹中建立db文件夹
3.打开CMD命令行
>d:
>cd mongodb\bin
>mongod -dbpath D:\mongodb\data\db
4.在打开一个CMD命令行:
>d:
>cd mongodb\bin
>mongo
5.这样就能够用了。

接着就设计咱们的数据库了

在刚才的打开的mongodb数据库中输入:
>use chihuo \\建立一个叫chihuo的数据库
>db.createCollection("users") \\建立一个集合
>db.users.insert({"name":"admin","password":"111"}) \\给users集合添加一个文档。
>db.users.find() \\查询你添加的文档

再接着就是在项目中链接刚才建立的数据库了

在项目根目录下建立一个的文件夹database,而后在建立一个

db.js

复制代码

 var mongoose = require('mongoose');
 var db = mongoose.connect('mongodb://localhost/chihuo');//;链接数据库
 var Schema = mongoose.Schema; // 建立模型
 var userScheMa = new Schema({5 name: String,6 password: String7 }); // 定义了一个新的模型,可是此模式还未和users集合有关联
 exports.user = db.model('users', userScheMa); // 与users集合关联

3.接着在views文件夹建立视图文件了

咱们上面用express建立的项目视图文件是ejs后缀名,咱们通常习惯使用html后缀名。
那么咱们怎么让他识别html的视图文件呢?

在app.js文件中 找到
>app.set('view engine', 'ejs');
把它替换成:
>app.set( 'view engine', 'html' );
再用app.engine()方法注册模板引擎的后缀名。代码:
>app.engine('.html',require('ejs').__express);//里面的下划线是两个

而后咱们建立一个login.html(登录页面),index.html(原来有,改一下后缀名就行),ucenter(登录以后的页面);

index.html--
<!DOCTYPE html>
<html>
  <head>
	<title><%= title %></title>
	<link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
	<h1>Hello World</h1>
	<p>Welcome to <%= title %></p>
	<p><a href="login">登录</a></p>
  </body>
</html>

login.html--
	<!DOCTYPE html>
	<html>
	  <head>
		<title><%= title %></title>
		<link rel='stylesheet' href='/stylesheets/style.css' />
	  </head>
	  <body>
		<h1>Hello World</h1>
		<form action="ucenter" method="post">
			<p>name:<input type="text" name="name" id="name" /></p>
			<p>password:<input type="text" name="password" id="password" /></p>
			<p><input type="submit" value="submit" /></p>
		</form>
	  </body>
	</html>


ucenter.html--
	<!DOCTYPE html>
	<html>
	  <head>
		<title><%= title %></title>
		<link rel='stylesheet' href='/stylesheets/style.css' />
	  </head>
	  <body>
		<p>登录成功</p>
	  </body>
	</html>

 4.最后就是路由的控制了,在routes文件中的index.js 

复制代码

 var express = require('express'); 
 var router = express.Router(); 
 var user = require('../database/db').user; 

  /* GET home page. */ 
   router.get('/', function(req, res) {
       res.render('index', { title: 'index' });
   });
     
   /*login*/
   router.get('/login', function(req, res) {
     res.render('login', { title: 'login' });
   });
   
   /*ucenter*/
   router.post('/ucenter', function(req, res) {
     var query = {name: req.body.name, password: req.body.password};
     (function(){
       user.count(query, function(err, doc){
         if(doc == 1){
           console.log(query.name + ": 登录成功 " + new Date());
           res.render('ucenter', { user:doc });
         }else{
           console.log(query.name + ": 登录失败 " + new Date());
           res.redirect('/');
         }
       });
     })(query);
   });31 32 module.exports = router;

复制代码

目前就讲解这么多,以后的博客我会讲解最新版本的session问题还有前台页面中应用到bootstrap等等,不断的把项目完善。

github地址:https://github.com/songtanjichuan/chihuo_0.0.1.git

mongoose参考地址:http://www.hubwiz.com/course/543b2e7788dba02718b5a4bd

若是以为还不错,求推荐。转载的话,请加原文连接。

相关文章
相关标签/搜索