首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
nodejs(三)上之express
时间:
2016-10-21 00:54:46
阅读:
279
评论:
0
收藏:
0
[点我收藏+]
标签:
express
简介
Express 是一个简洁而灵活的
node.js Web应用框架
, 提供了一系列强大特性帮助你创建各种
Web 应用,和丰富的
HTTP 工具。
使用
Express 可以快速地搭建一个完整功能的网站
安装并运行
sudo npm install express
var
express
=
require
(
“express”);
var
app
=
express
();
//
初始化
核心功能
路由
get方法
— 根据请求路径来处理客户端发出的
GET请求
app.get(path,cb);
* path:
为请求的路径
* cb :
第二个参数为处理函数的回调,
有两个参数request
和response,
代表请求信息和响应信息
前端页面代码
<!DOCTYPE
html>
<
html
lang=
“en”
>
<
head>
<
meta
charset=
“UTF-8”
>
<
title>
Title
</
title>
</
head>
<
body>
<
form
action=
“/list”
method=
“post”
>
用户名
:
<
input
type=
“text”
name=
“user”
><
br>
密码
:
<
input
type=
“password”
><
br>
<
input
type=
“submit”
value=
“
发送
”
>
</
form>
</
body>
</
html>
服务端
//
处理
get
方式发送的请求
app
.
get(
“/“,
function (req,res) {
//
返回一个静态文件
res.
sendFile(
__dirname
+
”/post.html”);
});
app
.
get(
“/list”,
function (req,res) {
//
返回一个字符串
res.
send(
“get”
+req.
url);
});
app
.
post(
“/list”,
function (req,res) {
res.
send(
“post”
+req.
url);
});
//all
就是处理不管是任何方式发送的请求
,*
为任意路径
app
.
all(
“*”,
function (req,res) {
res.
send(
“Welcome to Express”);
});
//
设置端口号
app
.
listen(
8080);
获取请求的参数
获取请求参数
* req.host:
返回请求头里取的主机名(
不含端口号)
* req.path:
返回请求的url
的路径名
* req.query:
是一个可获取客户端get
请求路径参数的对象属性,
包含着被解析过的请求参数对象,
默认为{}
* req.params:
获取路由的parameters
获取返回的参数
4.
返回参数
* res.send();
返回数据,
默认会转为字符串,
编码为utf8
* res.sendFile();
返回文件
* res.sendStatus();
返回状态码
例子
//
http://localhost:8080/query?user=tangcaiye
app
.
get(
“/query”,
function (req,res) {
res.
send(req.
query);
});
//
http://localhost:8080/article/2/tangcaiye
app
.
get(
“/article/:id/:name”,
function (req,res) {
res.
send(req.
params);
});
app
.
all(
‘/*’,
function(req,res){
console
.
log(req.
path);
console
.
log(req.
host);
res.
send(
“
没找到页面
”);
});
app
.
listen(
8080);
中间件
概念
中间件就是处理
HTTP请求的函数
,用来完成各种特定的任务
,比如检测用户是否登录
,分析数据
,以及其他在需要最终将数据发送给用户之前完成的任务
* 特点
:
* 1.每个中间件都可以控制流程是否继续执行
* 2.每个中间件的
req res都是用的同一个对象
* 3.如果出错了
,转交错误处理中间件进行处理
* 4.最大的特点是
,一个中间件处理完
,可以把相应数据再传递给下一个中间件
* 5.如果调用回调函数的
next参数表示将请求数据传递给下一个中间件
例子:
//
中央发了
100
快钱
app
.
use(
function (req,res,next) {
req.
money
=
100;
next();
});
//
市政府
app
.
use(
function (req,res,next) {
req.
money
-=
20;
//
如果
next
传了一个不为
null
的参数
,
说明有错
,
会中止其他中间件并执行错误处理中间件
next(
“
钱丢了
”);
});
//
村
app
.
use(
function (req,res,next) {
req.
money
-=
50;
next();
});
//
错误处理中间件
app
.
use(
function (err,req,res,next) {
console
.
error(err);
res.
end(err);
});
app
.
all(
‘/*’,
function(req,res){
res.
send(
“”
+req.
money);
});
app
.
listen(
8080);
模板引擎
模板引擎-
首先需要先安装才能用
* nam install ejs
* 1.
指定渲染模板引擎
* app.set(“view engine”,”ejs”);
* 2.
设置放模板文件的目录
* add.set(“views”,path.join(__dirname,”/“));
* 3.rander
函数,
对网页模板进行渲染,
在渲染模板时locals
可谓其模板传入变量值,
在模板中就可以条用所传变量了
* res.rander(view,[local],callback);
前端代码
<!DOCTYPE
html>
<
html
lang=
“en”
>
<
head>
<
meta
charset=
“UTF-8”
>
<
title>
Title
</
title>
</
head>
<
body>
姓名
:<%=name%>
<
br>
年龄
:<%=age%>
哪谁的年龄也是
:<%=age%>
岁
</
body>
</
html>
服务器端代码
app
.
set(
“view engine”,
”ejs”);
app
.
set(
“views”,
__dirname
);
//
放在当前目录下
app
.
get(
“/“,
function (req,res) {
//
默认模板文件后缀格式是
pjs
res.
render(
“muban”,{
name
:
”tangcaiye”,
age
:
18
});
});
cookie
安装cookie-parser模块
npm install cookie-parser
代码
var
express
=
require
(
“express”);
var
cookieParser
=
require
(
“cookie-parser”);
var
app
=
express
();
app
.
use(
cookieParser
());
app
.
get(
“/“,
function (req,res) {
//
如果请求中
cookie
存在
visited,
则输出
cookie
//
否则
,
设置
cookie
字段
visited,
并设置过期时间
if (req.
cookies.visited){
res.
send(
“
已访问过
”);
}
else {
res.
cookie(
“visited”,
”1”,{
maxAge
:
10
*
60
*
1000});
res.
send(
“
第一次访问
”);
}
});
app
.
listen(
8080);
参数说明
expires
:cookie的过期时间,GMT格式。如果没有指定或者设置为0,则产生新的cookie。
maxAge:是设置过去时间的方便选项,其为过期时间到当前时间的毫秒值。
api网址:
https://www.zybuluo.com/XiangZhou/note/208532
nodejs(三)上之express
标签:
原文地址:http://www.cnblogs.com/yuanyingke/p/5982859.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!