express入门学习(一)
一、安装express
cnpm || npm install express --save ;
1. Hello World
var express = require('express');
var app = express();
app.get('/',function(req,res){
res.send('hello world');
});
var server = app.listen('3000',function(){
var host = server.address().address;
var port = server.address().port;
console.log('server start localhost',host,port);
})
2.express路由
var express = require('express');
var app = express();
//http://localhost:3000/
app.get('/',function(req,res){
res.send('hello world');
});
//http://localhost:3000/user.html
app.get('/user.html',function(req,res){
res.sendFile(__dirname + '/' + 'user.html');
});
//http://localhost:3000/index.html
app.get('/index.html',function(req,res){
res.sendFile(__dirname + '/' + 'index.html')
});
/*
*其实每个路由对于着每个方法,把 req() => 请求的api 看懂
*
* 把 res(); => 的api 看会。就知道怎么和服务端交换啦。
*
* 当客户端发送AJAX请求的时候,其实就是方法的每个方法。
*
*/
var server = app.listen('3000',function(){
var host = server.address().address;
var port = server.address().port;
console.log('server start localhost',host,port);
})
3.静态资源 app.user(express.statice('public'));
var express = require('express');
var app = express();
//设置静态资源的位置
app.use(express.static('public'));
//http://localhost:3000/img/1.jpg
//public/img/1.jpg
var server = app.listen('3000',function(){
var host = server.address().address;
var port = server.address().port;
console.log('server start localhost',host,port);
})
二、express的中间件
1.应用级中间件
var express = require('express');
var app = express();
// 没有挂载路径的中间件,应用的每个请求都会执行该中间件
app.use(function(req,res,next){
console.log('应用级中间件');
console.log('time' + Date.now());
next();
})
app.get('/',function(req,res){
res.send('我是 根路径')
});
// 挂载至 /user/:id 的中间件,任何指向 /user/:id 的请求都会执行它
app.get('/user/:id',function(req,res,next){
console.log('我是 user路由上面的子中间件');
next();
});
app.get('/user/:id',function(req,res){
var id = req.params.id;
res.send(id);
});
app.get('/method/:id',function(req,res,next){
console.log('methos路径的参数',req.params);
next();
},function(req,res,next){
console.log('methods路径的第二个参数',req.method)
next();
})
app.get('/method/:id',function(req,res){
var path = req.route;
res.send(path);
});
var server = app.listen('3000',function(){
var host = server.address().address;
var port = server.address().port;
console.log('server start localhost',host,port);
})
2.路由级中间件 express.Router();
var express = require('express');
var router = express.Router();
var app = express();
router.use(function(req,res,next){
console.log(req.path);
next()
});
router.get('/user/:id',function(req,res,next){
console.log(req.originalUrl);
next();
})
router.get('/user/:id',function(req,res){
res.send(req.params);
})
app.use('/',router)
var server = app.listen('8080',function(){
console.log('start')
});
3.错误级中间件
var express = require('express');
var app = express();
app.use(function(error,req,res,next){
res.status('500').send('something error');
})
var server = app.listen('3000',function(){
console.log('server start');
})
4.静态资源中间件 express.static();
三、模板引擎
1.安装jade模板引擎,cnpm || npm install jade --save
var express = require('express');
var app = express();
app.set('views','./views');
app.set('view engine','jade');
app.get('/',function(req,res){
res.render('index',{title:'jade',message:'模板引擎'})
});
var server = app.listen('3000',function(req,res){
console.log('server start');
})
2.view 下面的index.jade
html
head
title!= title
body
h1!= message
express入门学习(一)的更多相关文章
- 1.Express入门
Express提供了轻量级框架,把Node.js的http模块功能封装在接口中. 也扩展了http模块功能,处理服务器路由,响应,cookie和HTTP请求的状态. 实现Express充当服务器,设计 ...
- cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例
cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...
- node.js Web应用框架Express入门指南
node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
随机推荐
- 5 功能4:个人站点页面设计(ORM跨表与分组查询)
1.个人站点页面文章的查询 # 个人站点 http://www.cnblogs.com/wh1520577322/ http://www.cnblogs.com/liucong12345/ http: ...
- let和var定义变量的区别
使用 let 语句声明一个变量,该变量的范围限于声明它的块中. 可以在声明变量时为变量赋值,也可以稍后在脚本中给变量赋值. 使用 let 声明的变量,在声明前无法使用,否则将会导致错误. 如果未在 ...
- 洛谷 P4478 [BJWC2018]上学路线
洛谷 P4478 [BJWC2018]上学路线 原题 神仙题orz,竟然没有1A....容斥+卢卡斯+crt?? 首先用容斥做,记\(f[i][0/1]\)表示到i号点经过了奇数/偶数个点的方案数,因 ...
- 手把手带你打造一个 Android 热修复框架(上篇)
本文来自网易云社区 作者:王晨彦 前言 热修复和插件化是目前 Android 领域很火热的两门技术,也是 Android 开发工程师必备的技能. 目前比较流行的热修复方案有微信的 Tinker,手淘的 ...
- Android——调用高德地图API前期准备
1.登陆高德开放平台注册账号http://lbs.amap.com/ 2.创建自己的应用并且添加新key 获取发布版安全码获取方法: 在AndroidStudio的Terminal中编译: 输入如下图 ...
- CentOS 下 SonarQube 6.7 的下载、配置、问题排查
CentOS 下 SonarQube 6.7 的下载.配置.问题排查 系统: CentOS 7 x86_64 SonarQube 版本: 6.7.3 Java 版本: 1.8.0_171 MySQL ...
- Unity3D — — Inspector面板编辑
转载官方文档,暂未深入研究 PropertyDrawer
- 新特性:postgresql的vacuum漫谈
文章出处:来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556440/viewspace-2375109/ 前言 即便是从数据库特性,SQL功能性等方面,Pos ...
- ETSI公布的多接入移动边缘计算概念验证
ETSI多接入移动边缘计算 公布的概念验证如下: 来源 MEC PoC Projects PoC#1: "Video User Experience Optimization via MEC ...
- WebRTC入门
什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转.比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器.乙和服务器之间建立信道.甲给乙发 ...