先最简单的代码

安装 npm install express

app.js 代码内容

const express = require('express')
const app = express()
//单项流动
const mid1 = () => (req, res, next) => {
res.body = '请求1<br/>'
next()
}
const mid2 = () => (req, res, next) => {
res.body += '请求2<br/>'
next()
} app.use(mid1())
app.use(mid2()) app.get('/', (req,res,next) => {
res.send(res.body +'业务处理中')
}) app.listen()

打开 localhost:2334端口可以看到

在上一个丰富点的代码,包含 swig模版引擎,静态资源加载,mongoose使用

var express = require('express');           //引入express
var swig = require('swig'); //引入swig模版引擎 同类的还有ejs bug
var mongoose = require('mongoose'); // 引入数据库 mongoose 需预先安装数据库
//加载 bodeyparser
var bodyParser = require('body-parser'); // 引入 body-parser 中间键
var Cookies = require('cookies'); // 引入cookies var app =express(); // 实例化 express var User = require('./models/User'); //设置静态文件托管
app.use('/public',express.static(__dirname + '/public')); // app.use 加载中间键 //加载模板模块
app.engine('html',swig.renderFile)
//设置模板目录第一个参数固定
app.set('views','./views');
// 注册所有使用模板引擎 第一个参数必须是view engine
app.set('view engine','html'); swig.setDefaults({cache: false}); // 默认缓存静态页面 false方便调试 app.use(bodyParser.urlencoded({extended: true})); app.use(function(req,res,next){
req.cookies = new Cookies(req,res);
//解析登录用户的cookie信息
req.userInfo ={};
if(req.cookies.get('userInfo')){
try{
req.userInfo = JSON.parse(req.cookies.get('userInfo'));
//获取当前登录用户类型 操作数据方法
User.findById(req.userInfo._id).then(function(userInfo){
req.userInfo.isAdmin = Boolean(userInfo.isAdmin);
next(); //next() 指引前往下一步
})
}catch(e){
next();
} }else{
next();
} });
//划分路由到不同的文件夹
app.use('/admin',require('./routers/admin'));
app.use('/api',require('./routers/api'));
app.use('/',require('./routers/main'));
// MONGOOSE 链接数据库
mongoose.connect('mongodb://localhost:27017/test',function(err){
if(err){
console.log("数据库链接失败");
}else{
console.log("数据库链接成功");
app.listen();
}
});

我在上面代码中做了详细的注写,还会详细完善

github地址:https://github.com/xiaoyanbin/bolg

一个完整的node.js +mongoose + express 实现的代码 

最新文章

  1. Kali 开机报错解决方案
  2. 谷歌地图地理解析和反解析geocode.geocoder详解
  3. 手机响应式js轮播基础
  4. tar 解压命令
  5. 避免ssh断开导致运行命令的终止:screen
  6. HDU 2058 The sum problem(枚举)
  7. tooltip 鼠标移动上去出现图片或文字与title大同小异
  8. 201521123057 《Java程序设计》第2周学习总结
  9. C# 泛型集合
  10. Django Rest framework基础使用之 serializer
  11. Kafka-Flume-elasticsearch
  12. THEKEY
  13. Shell编程中while与for的区别及用法详解【转】
  14. MYSQL 开发总结
  15. WPF实现特殊统计图
  16. delphi的一个公用函数库
  17. jQuery操作(一)
  18. 第一个微信小程序
  19. top,ps查看进程使用内存情况
  20. 基于大规模语料的新词发现算法【转自matix67】

热门文章

  1. Linux nohup 命令
  2. Dynamics CRM OData方式进行增删改查时报错的问题
  3. andrid面试题
  4. XBMC源代码分析 3:核心部分(core)-综述
  5. 理解WebKit和Chromium: 网页渲染的基本过程
  6. Android Bootloader LittleKernel的两篇文章
  7. Media Player Classic - HC 源代码分析 5:关于对话框 (CAboutDlg)
  8. Java学习网站大全
  9. 利用PreLoader实现一个平视显示(HUD)效果(可以运用到加载等待效果),并进行简单的讲解
  10. PS 色调——老照片效果