zoukankan      html  css  js  c++  java
  • Node.js Express框架基本用法

    Express是Node.js的轻量Web应用开发框架。

    安装模块

    Express框架及几个相关的重要模块安装

    cnpm install --save express
    cnpm install --save body-parser
    cnpm install --save cookie-parser
    cnpm install --save multer --save

    body-parser - node.js 中间件,用于处理JSON, Raw, Text 和 URL 编码的数据。
    cookie-parser - 解析Cookie的工具。通过req.cookies可以把传过来的cookie转成对象。
    multer - node.js 中间件,用于处理 enctype="multipart/form-data"的表单数据。

    第一个例子

    引入 express 模块,浏览器访问http://localhost:3000/后,输出 "Hello World" 。

    备注:端口号也可由环境变量设置,win下命令提示符输入先set port=3001,再输入node 文件名.js运行。

    const express = require('express');
    const app = express();
     
    const port = process.env.PORT || 3000
     
    app.get('/', (req, res) => 
       res.send('Hello World')
    );
     
    app.listen(port, () => {
        console.log(`Server listening on: http://localhost:${port}`); 
    });

    路由

    const express = require('express');
    const app = express();
      
    //GET请求
    app.get('/', (req, res)=>{
        //传送HTTP响应
        res.send('Hello GET');
    });
    
    //POST请求
    app.post('/', (req, res)=>{
        //传送JSON响应
        res.json({type:'POST'});
    });
    
    //正则匹配
    app.get('/items*', (req, res)=>{   
       res.send(req.originalUrl);
    });
    
    //带参数
    app.get('/items/:id', (req, res)=>{   
       res.send('/items/' + req.params.id);
    });
    
    app.listen(3000, ()=> {
        console.log('Server listening on: http://localhost:3000');
    });

    静态文件

    使用express.static中间件来设置静态文件如JavaScript、CSS和图片路径。

    const express = require('express');
    const app = express();
      
    app.use('/public', express.static('public'));
    
    app.listen(3000, ()=>{     
        console.log('Server listening on: http://localhost:3000'); 
    });

    在当前文件所在路径新建目录public/images,放一张图片1.gif。
    访问:http://localhost:3000/public/images/1.gif 

    获取Get和Post请求数据

    const express = require('express');
    const app = express();
    const bodyParser = require('body-parser');
    
    app.use(bodyParser.json());  //支持编码为json的请求消息体
    app.use(bodyParser.urlencoded({ extended: true })); //支持编码为表单的请求消息体
    
    //GET请求
    app.get('/', (req, res)=>{   
        const data = {
            "id": req.body.id,
            "name": req.body.name 
        };  
        //输出可用多种方法:
        
        //res.end只支持两种参数:String、Buffer
        res.end(JSON.stringify(data));
        
        //res.send支持多种参数:String、Buffer、Array、json对象;
        //另外发送更多的响应报文头,包括 Content-type: application/json; charset=utf-8
        //res.send(JSON.stringify(data));
        //res.send(data);
        
        //res.jsonp(data);
        
        //res.json(data);
        console.log(data);
    });
    
    //POST请求
    app.post('/', (req, res)=>{   
        const data = {
            "id": req.body.id,
            "name": req.body.name 
        };    
        res.json(data);
        console.log(data);
    });
    
    //POST请求
    app.post('/json', (req, res)=>{   
        const data = {
            "id": req.body.id,
            "name": req.body.name 
        };    
        res.json(data);
        console.log(data);
    });
    
    app.listen(3000, ()=> {
        console.log('Server listening on: http://localhost:3000');
    });
  • 相关阅读:
    hdu4417 Super Mario
    bzoj3110 zjoi2013 K大数查询
    转:如何理解c和c ++的复杂类型声明
    UVa 489 刽子手游戏
    bzoj1006 神奇的国度
    bzoj2764 基因补全
    bzoj2338 数矩形
    bzoj3720 gty的妹子树
    Struts2(一)入门及工作原理
    输入人民币/美元后自动判断,输出转换后相对应的值
  • 原文地址:https://www.cnblogs.com/gdjlc/p/14564367.html
Copyright © 2011-2022 走看看