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 ...
随机推荐
- WPF实现MDI窗体的方法
原文:WPF实现MDI窗体的方法 第一:新建一个类(Class) Win32Native.cs 代码如下: using System; using System.Collections.Generi ...
- Codeforces VK Cup 2018 Div.2
总题面传送门 这次考试只过了3题,前三题题目难度并不大,但是第三题的代码细节卡了我两个半小时(基本上整场考试),所以以后要合理把握时间,注意把握代码细节,并更加完善我的代码风格,使其更加简练.(赛外话 ...
- 可以运行的Oracle Advanced Queue的例子
通过查阅网上文章,发现很多Advanced Queue的例子无法跑起来. 参考了英文网站,可以正常运行成功. http://www.orafaq.com/wiki/Advanced_Queueing ...
- Noip前的大抱佛脚----Noip真题复习
Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻 ...
- 【转载】怎样在C++工程中集成C#窗口
原文:http://www.cnblogs.com/clever101/archive/2009/12/14/1624204.html 本文转自博客园,此文作者依据codeproject英文版本翻译! ...
- 【转载】COM 组件设计与应用(十七)——持续性
原文:http://vckbase.com/index.php/wv/1264.html 一.前言 我们写程序,经常需要实现这样的需求: 例一.程序运行产生一个窗口,用户关闭的时候需要记录窗口的位置, ...
- 微信小程序充值及充值回调后的处理
微信小程序的充值流程与 H5 或 公众号大致差不多,这里简单说一下前端在充值时候的一些操作流程. 用户在小程序中发起充值请求时,一般会先请求自己的服务器,将充值的参数发送给后端,然后后端会去请求微信充 ...
- netty+proto使用简要记录
1. maven环境配置protobuf 2.生成.proto文件 3.将.proto转为java文件 打开电脑的cmd,进入.proto所在文件位置,输入命令:protoc.exe --java_o ...
- php 文件上传缩略图路径分析类
<?php //文件上传时分析路径信息 //author:songzhenghe 2014-1-24 //version 0.1 class path_ana { private $da ...
- python自编程序实现——robert算子、sobel算子、Laplace算子进行图像边缘提取
实现思路: 1,将传进来的图片矩阵用算子进行卷积求和(卷积和取绝对值) 2,用新的矩阵(与原图一样大小)去接收每次的卷积和的值 3,卷积图片所有的像素点后,把新的矩阵数据类型转化为uint8 注意: ...