Express 是一个简洁、灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

1.express组织结构

app demo

|---node_modules------用于安装本地模块。
    |---public------------用于存放用户可以下载到的文件,比如图片、脚本、样式表等。
    |---routes------------用于存放路由文件。
    |---views-------------用于存放网页的模板。
    |---app.js------------应用程序的启动脚本。
    |---package.json------项目的配置文件。

2..创建express服务器

?
1
2
3
4
5
6
7
8
9
10
11
//app.js文件
var express = require('express');
var app = express();
//指定更目录显示的内容
app.get('/', function(req, res){
 res.send('Hello World');
});
//指定监听端口
var server = app.listen(3000, function() {
  console.log('Listening on port %d', server.address().port);
});

运行nodejs应用程序

/>node app.js

3.中间件

中间件(middleware)就是处理HTTP请求的函数.
当一个HTTP请求进入服务器,服务器实例会调用第一个中间件,完成后根据设置,决定是否再调用下一个中间件.

中间件的参数为:

.四个的时候---第一个为错误处理,第二个为客户请求request,第三个为服务器响应respond,第四个为next中间件. 如function(error, request, response, next){}
.三个的时候---第一个客户请求request,第二个为服务器响应respond,第三个为next中间件. 如function(request, response, next){}
.两个的时候---第一个客户请求request,第二个为服务器响应respondfunction. 如function(request, response){}

4.使用中间件use

use是express调用中间件的方法,它返回一个函数.

?
1
2
3
4
app.use(function(request, response) {
 response.writeHead(200, { "Content-Type": "text/plain" });
 response.end("Hello world!\n");
});

5.错误内容显示

?
1
2
3
4
5
6
7
app.use(express.bodyParser());//使用body参数
app.use(express.methodOverride());//使用函数覆盖
app.use(app.router);//使用路由
app.use(function(err, req, res, next){
 console.error(err.stack);
 res.send(500, 'Something broke!');
});//错误内容显示

6.路由

express路由的方式有多种,这里举例常用的几种:

.app.use('/', middleware);//get/post时,对于路径/的处理
.app.get("/", middleware);//http中get时,对于路径/的处理
.app.post("/", middleware);//http中post时,对于路径/的处理
.app.put("/", middleware);//http中put时,对于路径/的处理
.app.delete("/", middleware);//http中delete时,对于路径/的处理

7.路径通配符*

.*表示所有路径

?
1
2
3
app.get("*", function(request, response) {
 response.end("404!");
});//所有路径都返回404

.:捕获路径内容

?
1
2
3
app.get("/hello/:who", function(req, res) {
 res.end("Hello, " + req.params.who + ".");
});//如"/hello/alice”网址,网址中的alice将被捕获,作为req.params.who属性的值

8.设置环境变量set

set用于指定变量的值.
app.set("view engine", "ejs");//使用ejs作为模版

9.response对象方法

.重定向redirect

response.redirect("/hello/anime");//重定向到/hello/anime

.发送文件sendFile

response.sendFile("/path/to/anime.mp4");

.渲染网页模板render,即把变换的内容加载到网页.
    response.render("index", { message: "Hello World" });//将message变量传入index模板,值为"Hello World"渲染成HTML网页

10.requst对象方法

.获取客户ip地址:request.ip

.获取上传的文件:request.files

11.启动脚本package.json

package.json用于指定app信息,nodejs版本号和其他组件的依赖关系

?
1
2
3
4
5
6
7
8
{
  "name": "demo",
  "description": "My First Express App",
  "version": "0.0.1",
  "dependencies": {
   "express": "3.x"
  }
}

12.app入口app.js

app.js主要包含http的创建,基本路由,监听端口号

13.动态网页模板views

views文件夹,用于存放所有的放网页模板.

?
1
2
3
4
5
6
//app.js
app.get('/', function(req, res) {
  res.render('index',{title:"最近文章"});
});
//index.js
this is <%=title%>!

14.指定静态网页目录

//app.js
app.use(express.static('public'));//指定静态网页目录,当浏览器发出非HTML文件请求时,服务器端就到public目录寻找这个文件

转载于:https://www.cnblogs.com/exclusiveMemory/p/6611322.html

Nodejs的express使用教程相关推荐

  1. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等

    内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...

  2. Nodejs之Express框架

    Nodejs之Express框架 Express 简介 安装 Express 第一个 Express 框架实例 请求和响应 路由 静态文件 GET 方法 POST 方法 文件上传 Cookie 管理 ...

  3. 使用nodejs和express搭建http web服务

    文章目录 简介 使用nodejs搭建HTTP web服务 请求nodejs服务 第三方lib请求post 获取http请求的正文 Express和使用express搭建http web服务 expre ...

  4. nodejs库express是如何接收inbound json请求的

    这样几行简单的代码创建一个web服务器: var express = require('express'); var app = express(); var server = require('ht ...

  5. 在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案

    在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案 参考文章: (1)在nodeJs的Express框架下用TypeScript编写ro ...

  6. nodejs框架express之错误中间件(初学)

    nodejs框架express之错误中间件(初学) //引入express框架 const express = require('express'); const fs = require('fs') ...

  7. nodejs框架express之中间件的运用场景(初学)

    nodejs框架express之中间件的运用场景(初学) //引入express框架 const express = require('express'); //创建网站服务器 const app = ...

  8. nodejs框架express之使用中间件(初学)

    nodejs框架express之使用中间件(初学) //引入express框架 const express = require('express'); //创建网站服务器 const app = ex ...

  9. nodejs框架express之创建服务器(初学)

    nodejs框架express之创建服务器(初学) //引入express框架 const express = require('express'); //创建网站服务器 const app = ex ...

最新文章

  1. 全国大学智能车竞赛证书编号规范
  2. html与css结合动效案例,CSS3制作动画效果例子
  3. visual studio 调试 定义debug常量_有趣的阅读 12个提高生产力的Visual Studio调试技巧...
  4. 施一公:带好学生,是特别要紧的事
  5. html div 转图片或视频投放大屏
  6. alter procedure是什么意思_板上钉钉的意思
  7. 中岛美雪音乐合集-原曲流行极品音乐专辑
  8. mysql 单精度和双经度_***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别)...
  9. C++ OpenCV 将黑点框出来
  10. 一般描绘性形容词_英语中描绘性形容词是指哪种形容词?
  11. coreldraw x5安装视频教程_图形设计必备软件:CorelDRAW
  12. Hybrid App开发 四大主流平台
  13. sql server XML中value(),exists(),nodes()方法
  14. 开发必备技术--docker(使用篇)
  15. 【CYH-02】NOIp考砸后虐题赛:数学:题解
  16. 滑块验证码识别 java版本
  17. 典型的贪心算法~ (田忌赛马 )
  18. 谈一谈互联网产品设计阶段的工作流程
  19. 毕业设计 基于STM32单片机的水箱水位控制系统
  20. 27、scratch教程-画心形

热门文章

  1. sersync + rsync 实现文件的实时同步
  2. 【译】为什么这样宏定义#define INT_MIN (-2147483647 - 1)?
  3. 一文看懂.NET的各种变体
  4. Modbus RTU 通信工具设计
  5. Modular Multiplicative Inverse(模乘逆元)
  6. [Jmeter系列]Jmeter源码编译步骤(转)
  7. Linux tmux分屏工具
  8. 管中窥豹,初探Win RE(Windows恢复环境)
  9. Larbin简介,及其在Ubuntu10.04下的编译安装
  10. JavsScript中比较大小总结---基于sort()方法