• 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
  • 相关阅读:
    VS2010 添加项目依赖
    人工鱼群算法 AFSA
    粒子群算法 PSO
    CUDA速度测试
    AGSO 萤火虫算法
    用于WTL工具栏的辅助类CToolBarHelper
    关于结构体内存对齐
    遗传算法 GA
    A*算法
    人工蜂群算法 ABC
  • 原文地址:https://www.cnblogs.com/wssjzw/p/9098102.html
Copyright © 2020-2023  润新知