前端-全栈

express框架

2021-05-17  本文已影响0人  光明程辉

Express 是一个基于 Node.js 封装的上层服务框架,它提供了更简洁的 API 更实用的新功能。它通过中间件和路由让程序的组织管理变的更加容易。

如果需要跟加进一步的了解建议去 express官网看。没时间写那么详细,我只是把自己之前学习的一些笔记简单记录下来,如果有问题可以找我探讨。
使用:

1.下载 安装 npm install express --save
2.引入
3.创建一个server
4.监听
5.get(二级-三级。。。地址,function(req,res){})
.post(二级-三级。。。地址,function(req,res){})
.use(二级-三级,function(req,res){});
require('url');
on('data');
on('end')

中间件

作用是拓展功能、处理数据(便捷)

const express = require('express');
const server = express();

server.listen(1273);
server.use(function(req,res,next){
    console.log('你好我是user01');
    next();
});
server.use(function(req,res,){
  console.log('你好我是user02');
})

上面是运行结果是:你好我是user01 --> 你好我是user02

因为使用了 next() ,这个中间件。

在express中 GET、POST的参数解析等也是可以使用方便的第三方的处理(上篇说到ajax的封装中就讲过了怎么实现和封装)。

express-static 读取输出

var express = require('express');
var bodyParser = require('body-parser');//解析body,尤其是复杂的对象参数
var static = require('express-static'); // 中间件(托管静态文件)
var server = express();

server.listen(1767);
server.use(bodyParser.urlencoded({}));
server.use('/user',function(req,res,next){

    console.log(req.body);
        // body 是POST请求
    if(req.body.user == 'Anny' && req.body.pass =='123456'){
        res.send('ok')
    }
    else{
        res.send('no ok!');
    }
    //res.send({a:10});
    //next();
});

server.use(static('./www')); // www目录下的图片、CSS 文件、JavaScript 文件对外开放访问了

如果wwww 文件里面有文件就可以直接读取出来。

app.use('',function (res,req) {
    console.log("我是user01");
    //next(); // 如果不使用next,返回的结果是 : 我是user01
});
app.use('',function (res,req) {
    console.log("我是user02");
});

如果使用了 next() 。输出是:我是user01 我是user02

如果是get的数据,直接使用 req.query 解析就OK了。

默认解析了,直接使用。
const express = require('express');
const bodyParser = require('body-parser');
const static = require('express-static');
const multer = require('multer');// 专门用来解析上传文件的
const server = express();

server.listen(3000);
server.use(bodyParser.urlencoded({})); // 通中间件,解析body参数
server.use(multer({dest:'地址值'}).any()); // 可以上传任意的文件

{root:'/',dir:'' ,base:'xxx.docx', ext: '.docx', name:''}
{root是 在什么根目录,dir是 绝对路径 ,base是 文件名+后缀,ext是 后缀,name是 什么文件名}

server.use('/user',function(req,res,next){
    console.log(req.body); //查看解析后的body参数
    if(req.body.user == 'xiaoming' && req.body.pass =='123456'){
        res.send('ok')
    }
    else{
        res.send('no ok!');
    }
    //res.send({a:10});
    //res.write();
    //res.end();
    //next();
});
server.use(static('./www')); // 能改变文件地址
var express = require('express');
var app = express();

// 一个简单的 logger
app.use(function(req, res, next){
  console.log('%s %s', req.method, req.url);
  next();
});

// 响应
app.use(function(req, res, next){
  res.send('Hello World');
});

app.listen(3000);
const express = require('express');

// 初始化
const userRouter = express.Router();
const newsRouter = express.Router();

const app = express();
app.listen(3000);

app.use('/user',userRouter); // 这里 "/user" 表示把大模块拆分成小模块了。
app.use('/news',newsRouter);

// 小服务
userRouter.use('/xiaoming',function(req,res){
  res.send('user 小明!')
})
userRouter.use('/test',function(req,res){
  res.send('哈哈哈,测试test!')
})
newsRouter.use('/newsTest',function(req,res){
  res.send('渲染新闻')
})

// 这是没有拆分模块化的做法,不推荐
//app.use('www.baidu.com/news/xxxx',function(){});
//app.use('www.baidu.com/list/xxxx',function(){});
//app.use('www.baidu.com/users/xxxx',function(){});
...

在浏览器输入的基础路径+/user/xiaoming -----> 结果是: “user 小明!”
在浏览器输入的基础路径+/user/test -----> 结果是: “哈哈哈,测试test!”

下篇:cookie及cookie加密

上一篇 下一篇

猜你喜欢

热点阅读