Nodejs的express使用教程


Posted in NodeJs onNovember 23, 2015

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

1.express组织结构

app demo

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

2..创建express服务器

//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调用中间件的方法,它返回一个函数.

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

5.错误内容显示

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.路径通配符*

.*表示所有路径

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

.:捕获路径内容

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版本号和其他组件的依赖关系

{
  "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文件夹,用于存放所有的放网页模板.

//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目录寻找这个文件

如:<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">, 服务器端就到public/bootstrap/css/目录中寻找bootstrap.css文件

好了,本教程先给大家介绍到这里,后续还会持续给大家更新,谢谢大家一直以来对三水点靠木网站的支持。!

NodeJs 相关文章推荐
Nodejs sublime text 3安装与配置
Jun 19 NodeJs
提高NodeJS中SSL服务的性能
Jul 15 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
nodejs实现一个word文档解析器思路详解
Aug 14 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
nodejs初步体验篇
Nov 23 #NodeJs
Nodejs初级阶段之express
Nov 23 #NodeJs
基于html5和nodejs相结合实现websocket即使通讯
Nov 19 #NodeJs
浅析nodejs实现Websocket的数据接收与发送
Nov 19 #NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 #NodeJs
浅谈Nodejs观察者模式
Oct 13 #NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 #NodeJs
You might like
PHP脚本的10个技巧(7)
2006/10/09 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
php compact 通过变量创建数组
2016/11/15 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
php 中序列化和json使用介绍
2013/07/08 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
python 系统调用的实例详解
2017/07/11 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
numpy中矩阵合并的实例
2018/06/15 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
numpy 声明空数组详解
2019/12/05 Python
python初步实现word2vec操作
2020/06/09 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
应届毕业生的自我鉴定
2013/11/13 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
新手初学Java网络编程
2021/07/07 Java/Android
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL