安装

首先要确保已经安装了 Node.js,接下来创建一个目录,然后进入此目录并将其作为当前工作目录。

mkdir myapp
cd myapp

通过 npm init 命令为应用创建一个 package.json 文件,指定入口文件为 index.js,然后一路回车确定即可。

npm init

接下来安装 Express 并将其保存到依赖列表中:

npm install express --save

创建 MongoDB 数据库

首先要确保安装了 MongoDB,并且把 mongoose 添加到 package.json 依赖里,

npm install mongoose --save

然后在CMD里执行下面命令

mongo //进入数据库
use express-demo //创建项目数据库
db.createCollection("users") //创建一个集合,也就是表
db.users.insert({userid: "admin", password: "123456"}) //给users里添加一个文档,也就是一条记录账号admin,密码123456

ok,现在检查一下:

db.users.find() //如果看到你刚刚添加的文档记录,就ok咯

搭建项目原型

进入myapp 目录,创建一个名为 index.js 的文件,此文件为入口文件,将下面代码复制进去;

var express = require('express');
var http = require('http')
var app = express();
var mongoose = require('mongoose');
var user = require('./models/user').user;
var bodyParser = require('body-parser'); mongoose.connect('mongodb://localhost/express-demo');
app.set('view engine', 'jade');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.get('/', (req, res) => {
res.render('index', {title: 'index'})
})
app.get('/login', (req, res) => {
res.render('login', {title: 'login'})
})
app.get('/loginout', (req, res) => {
res.render('loginout', {title: 'loginout'})
})
app.post('/homepage', (req, res) => {
var query_doc = {
userid: req.body.userid,
password: req.body.password
};
(function () {
user.count(query_doc, (err, doc) => {
if (doc == 1) {
console.log(query_doc.userid + ": login success in " + new Date());
res.render('homepage', {title: 'homepage'});
} else {
console.log(query_doc.userid + ": login failed in " + new Date());
res.render('error', {title: 'login error'})
}
});
})(query_doc);
})
var server = http.createServer(app); server.listen(3000, () => {
console.log('服务已启动')
})

上面这个index.js文件里,连接了 mongodb 并且创建了一个基本的服务器,设置了 jade 作为默认模板引擎;

然后,创建 models 文件夹,在models下创建一个user.js,作为实体类映射数据库的users集合;

var mongoose = require('mongoose')
var Schema = mongoose.Schema;
var userSchema = new Schema({
userid: String,
password: String
});
exports.user = mongoose.model('users', userSchema);

接下来,创建一个视图 views ,在 views 下面创建模板 index.jade、login.jade、loginout.jade、homepage.jade、error.jade,在模板里写出基本的页面,并引入 bootstrap 来美化页面;至此,基本大功告成了!

在cmd运行

node index.js

npm start

在浏览器打开 http://localhost:3000/ ,即可看到效果!

Github地址:https://github.com/jonechen1986/Node-Express-MongoDB

最新文章

  1. C/C++头文件区别
  2. Splinter学习——不仅仅是自动化测试哦
  3. HB制作的app版本更新
  4. 完美解决:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x
  5. a + b + c 求和
  6. atitit js 开发工具 ide的代码结构显示(func list) outline总结
  7. [转载]ExtJs4 笔记(11) Ext.ListView、Ext.view.View 数据视图
  8. ZOJ1260/POJ1364国王(King)
  9. text与button上下不对齐解决方法
  10. javascript和jquery动态创建html元素
  11. Android中支持的常用距离单位
  12. BarTender打印出来的条码与设计的不同如何处理
  13. What the difference between rebuild index and re-organize index?
  14. Realm数据持久化方案的简单介绍和使用(二)
  15. Java 日志框架终极教程
  16. 统一修改表单参数(表单提交的空字符串统一转null)
  17. springboot 启动报错
  18. [解决]RESTEASY003215: could not find writer for content-type text/html type: java.lang.String
  19. sql 去掉 空格
  20. BAT特殊字符

热门文章

  1. 第二次作业——个人项目实战(sudoku)
  2. Halcon 笔记3 形态学
  3. web三大组件的加载顺序
  4. 【.Net】从字符串数组中寻找数字的元素
  5. dom变成jquery对象 先获取dom对象 然后通过$()转换成jquery对象
  6. Jmeter如何连接数据库Mysql
  7. WebGL画一个10px大小的点
  8. BZOJ3717 PA2014Pakowanie(状压dp)
  9. C++解析(30):关于指针判别、构造异常和模板二义性的疑问
  10. Android 解决ScrollView嵌入ListView | GridView | ScrollView显示问题