一、关于安装和启动:

1、设置环境变量:D:\Program Files\MongoDB\bin

2、启动时需要cd到bin 目录,然后 mongod --dbpath "D:\mongdb\data"设置数据库存储路径

二、例子(登录注册表单)

1


2 index.js

var express=require("express"),
bodyParser=require('body-parser'),
multer=require('multer'),
mongoose=require('mongoose'),
cookieParser = require('cookie-parser'),
session = require('express-session'),
app=express(); var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/my-website');
db = mongoose.connection;
db.once('open', function callback () {
console.log("yah");
});
var kittySchema = mongoose.Schema({
first: String,
last: String,
email: {type:String,unique:true},
password:{type:String,index:true}
});
var User = mongoose.model('user', kittySchema); app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(multer()); // for parsing multipart/form-data
app.use(cookieParser());
app.use(session({
secret: 'my secret',
resave: false,
saveUninitialized: true
})); app.set("view engine","jade"); app.use(function(req,res,next){
if(req.session.loggedIn){
res.locals.authenticated=true;
User.findById(req.session.loggedIn,function(err,doc){ if(err){
return next(err);
}
if(doc){
res.locals.me=doc;
}
next();
});
}else{
res.locals.authenticated=false;
next();
}
}); app.get("/",function(req,res){
res.render('index');
}); app.get("/login",function(req,res){
res.render("login");
}) app.get("/signup",function(req,res){
res.render("signup");
}); app.post("/signup",function(req,res,next){
var user = new User(req.body.user);
user.save(function(err){
if(err) return next(err);
res.redirect("/login/"+user["email"]);
});
}); app.get("/login/:signupEmail",function(req,res){
res.render('login',{signupEmail:req.params.signupEmail});
}); app.post("/login",function(req,res){
User.findOne({"email":req.body.user.email,"password":req.body.user.password},function(err,doc){
if(err){
return next(err);
}
if(!doc){
return res.send("<p>User not found.Go back and try again</p>");
}
var sess=req.session;
req.session.loggedIn=doc._id.toString();
res.redirect("/");
});
}); app.get("/logout",function(req,res){
var sess=req.session;
req.session.loggedIn="",
res.redirect("/");
}); app.listen(3000,function(){
console.log("app listening on *:3000");
});

3 模板 (注意缩进)

3.1 layout.jade

doctype html
html
head
title MongoDB example
body
h1 My first MongoDB app
hr
block body

3.2 index.jade

extends layout
block body
if (authenticated)
p Welcome back,#{me.first}
a(href="/logout") Logout
else
p Welcome new visitor!
ul
li: a(href="/login") Login
li: a(href="/signup") Signup

3.3 login.jade

extends layout
block body
form(action="/login",method="POST")
fieldset
legend Log in
if(signupEmail)
p
Congratulations on signing up! Please login below.
input(name="user[email]",type="text",value=signupEmail)
else
p
label Email
input(name="user[email]",type="text")
p
label Password
input(name="user[password]",type="password")
p
button Submit
p
a(href="/") Go back

3.4 signup.jade

extends layout
block body
form(action="/signup",method="POST")
fieldset
legend Sign
p
label First
input(name="user[first]",type="text")
p
label last
input(name="user[last]",type="text")
p
label Email
input(name="user[email]",type="text")
p
label Password
input(name="user[password]",type="password")
p
button Submit
p
a(href="/") Go back

最新文章

  1. 全球IP分布表
  2. jquery中的children()和contents()的区别
  3. FME中Cass扩展属性转Shp的方法
  4. 使用 JavaScript
  5. android 安全需要关注
  6. Unity3d 巫师3Ciri的渲染
  7. ps -aux
  8. ORACLE 视图的 with check option
  9. Android网络编程之Http通信
  10. block 解析 - block变量
  11. ubuntu下使用nginx搭建流媒体服务器,实现视频点播
  12. [Abp vNext 源码分析] - 3. 依赖注入与拦截器
  13. spring和mybatis的整合开发(传统Dao开发方式)
  14. Javascript高级编程学习笔记(5)—— JS操作符
  15. Oracle——存储过程简单入门实例
  16. 018 spark on yarn (Job history)的配置,主要是yarn处跳转到历史聚合页面
  17. LOJ#2452. 「POI2010」反对称 Antisymmetry
  18. Python day7之mysql
  19. Microsoft Word 2010/2013 无法创建工作文件 请检查临时环境变量
  20. swift 之 as、as!、as?

热门文章

  1. java random配置修改
  2. &lt;ZZ&gt;linux yum命令详解
  3. html5--3.20 新增的keygen元素
  4. node之get与post
  5. kafka数据可靠性深度解读【转】
  6. c语言中#和##的用法
  7. java集合框架之HashSet
  8. 技术胖Flutter第三季-18布局CardWidget 卡片布局组件
  9. 18.Consent 实现思路介绍
  10. 计算机图形学DDA画线法+中点画线法+Bresenham画线法