• Node-Express框架的用法


    题记

            node.js中express框架的用法

    Express框架的特点

            可以设置中间件来响应 HTTP 请求。

            定义了路由表用于执行不同的 HTTP 请求动作。

            可以通过向模板传递参数来动态渲染 HTML 页面。

    安装Express模块 

            npm install express --save

    安装重要模块 

            npm install body-parser --save
            npm install cookie-parser --save
            npm install multer --save

    查看express版本 

            npm list express

    请求和响应

            语法:

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

    创建实例 

            创建main.js实例: 

    1. //main.js 文件
    2. var express = require('express');
    3. var app = express();
    4. app.get('/', function (req, res) {
    5. res.send('Hello World');
    6. })
    7. var server = app.listen(8080, function () {
    8. var host = server.address().address
    9. var port = server.address().port
    10. console.log("应用实例,访问地址为 http://%s:%s", host, port)
    11. })

    路由

    1. var express = require('express');
    2. var app = express();
    3. // 主页输出 "Hello World"
    4. app.get('/', function (req, res) {
    5. console.log("主页 GET 请求");
    6. res.send('Hello GET');
    7. })
    8. // POST 请求
    9. app.post('/', function (req, res) {
    10. console.log("主页 POST 请求");
    11. res.send('Hello POST');
    12. })
    13. // /del_user 页面响应
    14. app.get('/del_user', function (req, res) {
    15. console.log("/del_user 响应 DELETE 请求");
    16. res.send('删除页面');
    17. })
    18. // /list_user 页面 GET 请求
    19. app.get('/list_user', function (req, res) {
    20. console.log("/list_user GET 请求");
    21. res.send('用户列表页面');
    22. })
    23. // 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求
    24. app.get('/ab*cd', function(req, res) {
    25. console.log("/ab*cd GET 请求");
    26. res.send('正则匹配');
    27. })
    28. var server = app.listen(8080, function () {
    29. var host = server.address().address
    30. var port = server.address().port
    31. console.log("应用实例,访问地址为 http://%s:%s", host, port)
    32. })

     静态文件

            语法:

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

             创建main.js代码:

    1. var express = require('express');
    2. var app = express();
    3. app.use('/public', express.static('public'));
    4. app.get('/', function (req, res) {
    5. res.send('Hello World');
    6. })
    7. var server = app.listen(8080, function () {
    8. var host = server.address().address
    9. var port = server.address().port
    10. console.log("应用实例,访问地址为 http://%s:%s", host, port)
    11. })

     GET方法

            创建index.html:

    1. <html>
    2. <body>
    3. <form action="http://127.0.0.1:8080/process_get" method="GET">
    4. First Name: <input type="text" name="first_name"> <br>
    5. Last Name: <input type="text" name="last_name">
    6. <input type="submit" value="Submit">
    7. form>
    8. body>
    9. html>

             创建server.js文件:

    1. var express = require('express');
    2. var app = express();
    3. app.use('/public', express.static('public'));
    4. app.get('/index.html', function (req, res) {
    5. res.sendFile( __dirname + "/" + "index.html" );
    6. })
    7. app.get('/process_get', function (req, res) {
    8. // 输出 JSON 格式
    9. var response = {
    10. "first_name":req.query.first_name,
    11. "last_name":req.query.last_name
    12. };
    13. console.log(response);
    14. res.end(JSON.stringify(response));
    15. })
    16. var server = app.listen(8080, function () {
    17. var host = server.address().address
    18. var port = server.address().port
    19. console.log("应用实例,访问地址为 http://%s:%s", host, port)
    20. })

     POST方法

            创建index.html:

    1. <html>
    2. <body>
    3. <form action="http://127.0.0.1:8080/process_post" method="POST">
    4. First Name: <input type="text" name="first_name"> <br>
    5. Last Name: <input type="text" name="last_name">
    6. <input type="submit" value="Submit">
    7. form>
    8. body>
    9. html>

             创建server.js:

    1. var express = require('express');
    2. var app = express();
    3. var bodyParser = require('body-parser');
    4. // 创建 application/x-www-form-urlencoded 编码解析
    5. var urlencodedParser = bodyParser.urlencoded({ extended: false })
    6. app.use('/public', express.static('public'));
    7. app.get('/index.html', function (req, res) {
    8. res.sendFile( __dirname + "/" + "index.html" );
    9. })
    10. app.post('/process_post', urlencodedParser, function (req, res) {
    11. // 输出 JSON 格式
    12. var response = {
    13. "first_name":req.body.first_name,
    14. "last_name":req.body.last_name
    15. };
    16. console.log(response);
    17. res.end(JSON.stringify(response));
    18. })
    19. var server = app.listen(8080, function () {
    20. var host = server.address().address
    21. var port = server.address().port
    22. console.log("应用实例,访问地址为 http://%s:%s", host, port)
    23. })

     上传文件

            创建index.html:

    1. <html>
    2. <head>
    3. <title>文件上传表单title>
    4. head>
    5. <body>
    6. <h3>文件上传:h3>
    7. 选择一个文件上传: <br />
    8. <form action="/file_upload" method="post" enctype="multipart/form-data">
    9. <input type="file" name="image" size="50" />
    10. <br />
    11. <input type="submit" value="上传文件" />
    12. form>
    13. body>
    14. html>

            创建server.js:

    1. var express = require('express');
    2. var app = express();
    3. var fs = require("fs");
    4. var bodyParser = require('body-parser');
    5. var multer = require('multer');
    6. app.use('/public', express.static('public'));
    7. app.use(bodyParser.urlencoded({ extended: false }));
    8. app.use(multer({ dest: '/tmp/'}).array('image'));
    9. app.get('/index.html', function (req, res) {
    10. res.sendFile( __dirname + "/" + "index.html" );
    11. })
    12. app.post('/file_upload', function (req, res) {
    13. console.log(req.files[0]); // 上传的文件信息
    14. var des_file = __dirname + "/" + req.files[0].originalname;
    15. fs.readFile( req.files[0].path, function (err, data) {
    16. fs.writeFile(des_file, data, function (err) {
    17. if( err ){
    18. console.log( err );
    19. }else{
    20. response = {
    21. message:'File uploaded successfully',
    22. filename:req.files[0].originalname
    23. };
    24. }
    25. console.log( response );
    26. res.end( JSON.stringify( response ) );
    27. });
    28. });
    29. })
    30. var server = app.listen(8080, function () {
    31. var host = server.address().address
    32. var port = server.address().port
    33. console.log("应用实例,访问地址为 http://%s:%s", host, port)
    34. })

     Cookie管理

            创建main.js文件:

    1. // express_cookie.js 文件
    2. var express = require('express')
    3. var cookieParser = require('cookie-parser')
    4. var util = require('util');
    5. var app = express()
    6. app.use(cookieParser())
    7. app.get('/', function(req, res) {
    8. console.log("Cookies: " + util.inspect(req.cookies));
    9. })
    10. app.listen(8080)

     后记

            觉得有用可以点赞或收藏! 

  • 相关阅读:
    Ansible--playbook 剧本
    arcgis中坡向计算工作原理说明
    LeetCode二叉树系列——107.二叉树的层序遍历II
    Wireshark TS | 消失的 TCP DUP ACK
    卡尔丹旋转规则
    LeetCode 290. Word Pattern
    设计模式:适配器模式(C++实现)
    用LightningChart .NET 数据可视化控件制作多线程应用程序
    2021年9月电子学会图形化三级编程题解析含答案:计算平均分
    SAP abap json序列化
  • 原文地址:https://blog.csdn.net/m0_70819559/article/details/133974775