Express服务端开发框架简介

Express是服务器的框架,更准确的说:它是一款基于node.js平的开发框架。官网:http://www.expressjs.com.cn/starter/installing.html

类似于它的框架很多,但它可以说是被广泛应用的第一款服务器开发框架。

express 
koajs
loopback
//以上是同一小组开发 不分好坏 根据项目适配
egg //阿里巴巴开发 基于koajs 国内应用比较广泛

安装方式分为两种:

1. npm install 在node.js平台安装 安装后系统自动生成package.json文件

2. 直接写package.json文件在进行npm install安装

使用方式:

//开启服务器 并见监听9000端口
const express = require('express');

let app = express();
//__dirname 打印当前文件路径-绝对路径
    //同类型__filename 打印当前文件路径-绝对路径 包含文件名
app.use(express.static(__dirname + '/public'));

app.listen(9000);

Express模块的get方法--路由 处理以get方式发送且路径为‘/’的请求

//当且仅当请求为get 方法 且路径符合时,才会触发相应的路由--也就是触发指定路径的指定方法
var express = require();
var app = express();

app.get('/',function(res,req){
  res.send('Hello world!');
});
app.get('/customer',function(res,req){
  res.send('customer pase');
})
app.get('/admin',function(){
  res.send('admin page');
});

app.listen(3000);

为了页面更加整洁,可读性更高,我们会将处理路由的代码抽离出来

目录结构:
routes/
index.js
app.js

routes/index.js function(app){ app.get('/',function(res,req){ req.send('hello world!'); }); app.get('/',function(res,req){ req.send('wo shi guile'); }); app.get('/',function(res,req){ req.send('wssjzw') }); } //app.js const express = require('express'); const routes = require('./routes'); let app = express(); routes(app); app.listen(9000);

运行原理

底层:http模块

Express框架建立在node.js内置的http模块上。

var http= require('http');

var app = http.createServer(function(request,response){
  response.writeHead(200,{"content-type":"text/plain"});
  response.end("Hello world!");
});

app.listen(3000,"localhost");

Express底层调用了http模块的createServer方法,表示生成一个HTTP服务器实例,该方法参数是一个回调函数,回调函数的两个参数分别代表HTTP请求的request对象和HTTP响应的response对象。

const express = require('express');
let app = express();

app.get('/',function(req,res){
  res.send('Hello world!');
});
app.listen(3000);

这样书写相比于原生的好处是: 减少了代码耦合度(代码与代码的依赖度)。方便后续修改。

Express模块的get方法--路由 处理以post方式发送且路径为‘/’的请求

//对网站首页的访问返回 "Hello World!"字样
app.get('/',function(){
  res.send('Hello World');
});

//网站首页接受POST请求
app.post('/',function(res,req){
  res.send('Got a POST request');
});

利用Express托管静态文件

通过Express内置的Express.static可以方便地托管静态文件,例如图片、CSS、Javascript文件等。

将静态资源文件所在目录作为参数传递给express.static中间键就可以提供静态资源文件的访问。例如,假设在public目录放置了图片、CSS和Javascript文件,你就可以:

app.use(express.static('public'));

现在,public目录下面的文件就可以访问了。

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

所有文件的路径都是相对存放目录的,因此,存放静态文件的目录名不会出现在URL中。

如果你的静态资源存放在多个目录下面,你可以多次调用express.static中间件:

app.use(express.static('public'));
app.use(express.static('files'));

访问静态资源文件时,express.static文件件会根据目录添加的顺序查找所需的文件。

如果你希望所通过express.static访问的文件都存放在一个‘虚拟(virtual)’目录(即目录根本不存在)下面,可以通过为静态资源目录指定一个挂载路径的方式来实现,如下所示:

app.use('/static',express.static('public'));

现在你就可以通过带有“/static”前缀的地址来访问public目录下面的文件了。

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

 

转载于:https://www.cnblogs.com/wssjzw/p/9098102.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值