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分页类代码分享
Jun 17 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
Nodejs之http的表单提交
Jul 07 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
python判断输入日期为第几天的实例
2018/11/13 Python
python三方库之requests的快速上手
2019/03/04 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
python的re模块使用方法详解
2019/07/26 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
Python绘制数码晶体管日期
2021/02/19 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
经典c++面试题三
2015/07/08 面试题
网络安全类面试题
2015/08/01 面试题
新书吧创业计划书
2014/01/31 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
请客吃饭开场白
2015/06/01 职场文书
军训新闻稿范文
2015/07/17 职场文书
企业安全生产规章制度
2015/08/06 职场文书