我爱编程

Express+MongoDB 开发手记

2017-04-07  本文已影响0人  Michael_lpf

本文纯属个人笔记,毫无指导倾向和价值!

使用 Express + mongodb 写了个基于 nodejs 的图书借阅的小demo。


总览

先在项目目录中安装相关模块:
npm install node
npm install express ejs
不想使用 jade 模板,于是使用了 ejs 直接书写 html 标签。html 文件全部放在 views 目录下。
CSS 是用 Sass 预处理来写的。CSS 文件全部放在 public 目录下。
最关键的逻辑处理,全部写在了 app.js 中。

Paste_Image.png

数据库

没怎么接触过数据库,MongoDB 看上去倒是更适合新手了。
它有的是 { "name":"mike", "id":"001" } 这样 json 格式的数据,这些数据被分组放在数据集(collection)中。

先说如何与 MongoDB 建立联系
再说 MongoDB 的基本操作语句

沿着上面 step6 启动数据库后,就可以使用基本语句对数据库进行操作了。

在 nodejs 中操作 MongoDB:

首先要把 MongoDB 的连接配置弄好:

const mongodb = require('mongodb'),
     server = new mongodb.Server('localhost',27017,{auto_reconnect:true}),
     db = new mongodb.Db('mydb',server,{safe:true}),
     url = 'mongodb://localhost:27017/budiubook';

这里👆,细节我无法说的太清晰,大概就是引入 mongodb,设置服务端口、自动连接和用来访问的 URL。
然后,这里演示一个查询操作👇

mongodb.connect(url, function(err, db){
  if(!err){
    console.log('database connected !');
    db.collection('myCollection').find({"name":"Allen"}, function(err, res){
        console.log(res);
    })
  }
  else{
    console.log('ooops');
  }
})

Express

那么 Express 框架大致如何使用呢?
我在项目中的 app.js 文件中实现。

const express = require('express'),
          port = process.env.PORT || 3000,
          app = express();
app.listen(port);

👆主要做的事情就是引用 express,设置端口,监听端口。并且以 app 引用了 express(),这样使用 Express 方法时可以这样书写 app.name() 了。
现在来到项目根目录位置,输入 node app.js 便启动了项目。

使用的几个“部件”

const path = require('path');
app.use(express.static(path.join(__dirname, 'public')));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
const session = require('express-session');
app.use(session({
    secret:'secret',
    resave:true,
    saveUninitialized:false,
    cookie:{
        maxAge:1000*60*30 //过期时间设置(单位毫秒)
    }
}));

配置好后使用如下代码存储

app.use(function(req, res, next){
    res.locals.user = req.session.user;
    next();
});

主要方法

使用了 get 和 post 两个方法完成所有页面渲染和数据接收。

app.get('/index', function(request, result){
  result.render('index', {
    data: "username"
  })
})

👆可以渲染 index.html 页面了,并且在页面中可以访问 data 👇

<span><%= data %></span>
app.post('/login', function(request, result){
  let name = request.body.name;
  console.log(name);
})
上一篇 下一篇

猜你喜欢

热点阅读