• Node.js Express框架


    一、Express 介绍

        Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序。 它有助于基于Node Web应用程序的快速开发。Express框架的核心功能是:

    • 允许设立中间件响应HTTP请求
    • 定义了用于执行基于HTTP方法和URL不同动作的路由表
    • 允许动态渲染基于参数传递给模板HTML页面

    二、安装Express

    安装Express 框架全局使用NPM,以便它可以被用来使用Node终端创建Web应用程序。

    $ npm install express --save

    上面的命令在本地node_modules目录保存安装,并创建一个目录express在node_modules里边。还有,应该使用express安装以下几个重要的模块:

    u body-parser - 这是一个Node.js中间件处理JSON,Raw,文本和URL编码的表单数据

    u cookie-parser - 解析Cookie头和填充req.cookies通过cookie名字键控对象

    u multer - 这是一个Node.js的中间件处理multipart/form-data

    $ npm install body-parser --save

    $ npm install cookie-parser --save

    $ npm install multer --save

    三、Hello world 示例

         一个非常基本的Express应用程序,它会启动服务器,并侦听端口3000等待连接。这个应用程序使用"Hello World! "回应!为请求网页。 对于所有其他路径,这将响应一个404表示未找到。

    1、在F: odejs下新建server.js文件:

    var express = require('express');

    var app = express();

    app.get('/',function(request,response){

        response.send("Hello World");

    });

    var server = app.listen(8081,function(){

        var host = server.address().address

        var port = server.address().port

      console.log("Example app listening at http://%s:%s",host,port);

    })

        2、在node.js command prompt窗口下运行server.js文件

       

        3、在浏览器中访问http://localhost:8081/

     

    四、GET 方法:通过使用HTML表单使用GET方法传递两个值

    1、前端页面(index.html)

    <body>

        <form action="http://127.0.0.1:8082/process_get" method="GET">

           First Name:

            <input type="text" name="first_name">

            <br><br>

           Last Name:

             <input type="text" name="last_name">

            <br><br>

            <input type="submit" value="Submit">

        </form>

    </body>

     2、server.js:

    var express = require('express');

    const { response } = require('express');

    var app = express();

    app.get('/index.html',function(request,response){

        response.sendFile(__dirname+"/"+"index.html");

    });

    app.get('/process_get',function(req,res){

       let response = {

            first_name:req.query.first_name,

            last_name:req.query.last_name

        };

        console.log(req.query.first_name);

        res.end(JSON.stringify(response));

    });

    var server = app.listen(8082,function(){

        var host = server.address().address

        var port = server.address().port

        console.log("Example app listening at http://%s:%s",host,port);

    })

     

    五、POST 方法:通过使用HTML表单POST方法提交两个值

       1、前端页面(index.html):

    <body>

        <form action="http://127.0.0.1:8081/process_post" method="POST">

            First_Name:

            <input type="text" name="first_name">

            <br><br>

            Last_Name:

            <input type="text" name="last_name">

            <br><br>

            <input type="submit" value="Submit">

        </form>

    </body>

      2、服务文件(server.js)

    var express = require('express');

    var app = express();

    var bodyParse = require('body-parser');

    var urlencodeParser = bodyParse.urlencoded({extended:false});

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

    app.get('/index.html',function(req,res){

        res.sendFile(__dirname+"/"+"index.html");

    })

    app.post('/process_post',urlencodeParser,function(req,res){

        let response = {

            first_name:req.body.first_name,

            last_name:req.body.last_name

        };

        console.log(response);

        res.send(JSON.stringify(response));

    })

    var server = app.listen(8081,function(){

        var host = server.address().address

        var post = server.address().port

        console.log("Example app listening at http://%s:%s",host,post);

    })

     

    六、文件上传:在HTML代码创建一个文件上传表单。提交方法设置为POST,以及enctype属性设置为 multipart/form-data

       1、上传页面(up.html)

     <body>

        <form action="http://127.0.0.1:8081/file_upload" method="post" enctype="multipart/form-data">

            <input type="file" name="file" size="50" />

            <br />

            <input type="submit" value="Upload File" />        

        </form>

    </body>

      2、服务器代码(upload.js)

    var express = require('express');

    var app = express();

    var fs = require("fs");

    var bodyParser = require('body-parser');

    var multer  = require('multer');

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

    app.use(bodyParser.urlencoded({ extended: false }));

    app.use(multer({ dest: '/tmp/'}));

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

    app.use(bodyParser.urlencoded({extended:false}));

    app.use(multer({dest:'/tmp/'}));

    app.get('/up.html',function(req,res){

        res.sendFile(__dirname+"/"+"up.html");

    })

    app.post("/file_upload",function(req,res){

        console.log(req.files.file.name);

        console.log(req.files.file.path);

        console.log(req.files.file.type);

        var file = __dirname+"/"+req.files.file.name;

        fs.readFile(req.files.file.path,function(err,data){

            fs.writeFile(file,data,function(err){

                if(err){

                    console.log(err);

                }else{

                     response = {

                        message:'File upload successfully',

                        filename:req.files.file.name

                    };

                }

                console.log(response);

                res.end(JSON.stringify(response));

            });

        });

    })

    var server = app.listen(8081,function(){

        var host = server.address().address;

        var port = server.address().port;

        console.log("Example app listening at http://%s:%s",host,port);

    })

     

    七、Cookies 管理:可以发送cookie来Node.js加载服务器,它可以处理使用下面的中间件选项。下面是一个简单的例子来打印所有客户端发送的cookie。

    var express      = require('express')

    var cookieParser = require('cookie-parser')

    var app = express()

    app.use(cookieParser())

    app.get('/', function(req, res) {

      console.log("Cookies: ", req.cookies)

    })

    app.listen(8081)

  • 相关阅读:
    3-2 表的增删改查
    3-1 存储引擎的介绍
    2-1 库的增删改查
    1-4 初识sql语句
    1-3 mysql的安装和基本管理
    1-2 数据库概述
    1-1 数据库管理软件的由来
    4-6 IO模型对比
    《测试软件工程师》11,13 测试用例格式
    《软件测试工程师》10 测试环境搭建
  • 原文地址:https://www.cnblogs.com/lone5wolf/p/13826715.html
Copyright © 2020-2023  润新知