美文网首页
Node.js中间件使用

Node.js中间件使用

作者: playman | 来源:发表于2018-06-24 21:53 被阅读0次

Express进阶

了解请求

使用body-parse处理请求

了解express.js中间件的概念

根据请求设置不同的响应

使用路由分配模块

Request请求

Get请求——向服务器申请内容,请求体随URL发送,长度受限制,不加密

app.get('/search', function (req, res) {
    res.send('你搜索了');
});

Post请求——向服务器提交内容,请求体单独发送,长度不限,安全

app.post('/search', function (req, res) {
    res.send('你搜索了');
});
在页面from表单中method设为GET/POST,action填对应的内容

安装中间件

安装

$ npm install body-parser --save

添加依赖

var bodyParser = require('body-parser');
//解析JSON
app.use(bodyParser.json());
//处理页面传来的值
app.use(bodyParser.urlencoded({extended:true}));

与页面结合

add.ejs

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>用户</title>
    </head>
    <body>
        <h1>姓名<%=name%></h1>
        <h1>年龄<%=age%></h1>
        <h1>爱好<%=fav%></h1>
    </body>
</html>

app.js

app.post('/adduser', function (req, res) {
    console.log(req.body);
    var user = {};
    user.name = req.body.name;
    user.age = req.body.age;
    user.fav = req.body.fav;
    res.render('add',user);
});

表单页面自己添加

<form class="" action="/adduser" method="post">
    <label for="name">姓名</label>
    <input id="name" type="text" name="name" value="">
    <label for="age">年龄</label>
    <input id="age" type="text" name="age" value="">
    <label for="fav">爱好</label>
    <input id="fav" type="text" name="fav" value="">

    <input type="submit" name="button" value="添加"></button>
</form>
写入文件

添加依赖

var fs = require('fs');//文件的读写

写入文件

var str = JSON.stringify(user);
fs.writeFile('./save/user.json',str,'UTF-8');
注意:要创建文件夹

持续写入内容

var str = JSON.stringify(user);
fs.appendFile('./save/user.json', str, 'UTF-8', function () {
  console.log('追加内容完成');
});

创建数组,数组内为JSON格式

app.post('/adduser', function (req, res) {
    console.log(req.body);
    fs.readFile('./save/user.json', function (err,data) {
        var userlist;
        if(data.toString() === ''){
            userlist = [];
        }else{
            userlist = JSON.parse(data);
        }
        var user = {};
        user.name = req.body.name;
        user.age = req.body.age;
        user.fav = req.body.fav;
        //将新用户推进数组保存
        userlist.push(user);
        //持续写入对象
        var str = JSON.stringify(userlist);
        fs.writeFile('./save/user.json',str,'UTF-8');
        res.render('add',user);
    });
});

自定义中间件

//自定义的中间件
function addnews(req,res,next) {
    fs.readFile('./save/news.json', function (err,data) {
        var newslist;
        if(data.toString() === ''){
            newslist = [];
        }else{
            newslist = JSON.parse(data);
        }
        var news = {};
        news.title = req.body.title;
        news.pic = req.body.pic;
        news.newssrc = req.body.newssrc;
        news.newstime = req.body.newstime;

        newslist.push(news);

        var str = JSON.stringify(newslist);
        fs.writeFile('./save/news.json',str,'UTF-8');
        // res.send('添加成功');
    });
    next();
}

//添加新闻
app.post('/addnews', addnews, function (req,res) {
    console.log(req.body);
    res.send('添加成功!!!');
});

自定义不同路由处理

自定义路由处理

//这个路由文件用于处理所有来自后台端的请求
var express = require('express');
var router = express.Router();

// 做其它路由处理
router.get('', function (req, res, next) {
});

router.post('', function (req,res, next) {
});

module.exports router;

app.js添加

app.use('/admin', admin);
//表示所有/admin请求都走admin.js路由请求

express自动构建工程

  • 安装
$ npm install express-generator -g
  • 创建一个ejs工程
$ express -e
  • 执行安装
$ npm install
  • 运行
$ npm start

相关文章

  • NodeJS 中间件机制

    理解 Node.js 中间件机制核心代码的实现,加深对中间件机制的理解,有助于更好的使用和编写中间件。 一、中间件...

  • express 默认日志组件 morgan 学习

    入门 morgan是express默认的日志中间件,也可以脱离express,作为node.js的日志组件单独使用...

  • Node.js防范csrf攻击

    csurf Node.js 防范csrf攻击中间件 需要session中间件(如:express-session)...

  • node.js express框架常用API

    重要中间件 body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 UR...

  • Node.js中间件使用

    Express进阶 了解请求使用body-parse处理请求了解express.js中间件的概念根据请求设置不同的...

  • 在Node.js中使用Multer进行文件上传

    几个月前,我写了一篇有关如何使用express-fileupload中间件在Node.js和Express中上传文...

  • Node.js 常用中间件

    Node.js 常用中间件 async jsonwebtoken bluebird crypto mongoose...

  • 知识点总结

    Koa2中间件 koa(面向node.js的表达式HTTP中间件框架)、koa-router(路由中间件)、koa...

  • 中间件

    1、不使用默认的中间件 不使用默认的中间件 添加一个中间件 2、使用默认的中间件···// Default 使用 ...

  • Gin-中间件-使用

    全局使用中间件 指定路由使用中间件

网友评论

      本文标题:Node.js中间件使用

      本文链接:https://www.haomeiwen.com/subject/jegsyftx.html