gdjlc

培养良好的习惯,每天一点一滴的进步,终将会有收获。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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');
});

 

posted on 2021-03-29 10:33  gdjlc  阅读(108)  评论(0编辑  收藏  举报