• express 获取post 请求参数


    在 Express 中没有内置获取表单 POST 请求体的 API , 我们需要添加第三方插件库

    安装:

    npm install --save body-parser
    

    配置:

    var bodyParser = require('body-parser')
    
    //配置 body-parser 中间件 (插件, 专门用来解析表单 POST 请求)
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({txtended: false}))
    //parse application/json
    app.use(bodyParser.json())
    

      

     实例:

    var express = require('express')
    var bodyParser = require('body-parser')
    //1. 创建app
    var app = express()
    
    /*
     * 第一个参数 表示, 当渲染以 .art 结尾的文件时候 使用 art-template 模板引擎
     * express-art-template 是专门用来 Express 中把 art-template 整合到 Express  
     * 虽然不需要加载 art-template   但也必须要安装
     */
    
    //app.engine( 'art', require('express-art-template') )
    app.engine( 'html', require('express-art-template') )
    
    /*
     * Express 为 Response 相应对象提供一个方法 : render
     * render 方法默认不可以使用, 但是如果配置了模板引擎就可以
     * res.render('html模板名','模板数据')
     * 第一个参数不能写路径 , 默认会去项目中的views 目录汇总找模板文件
     * 也就是 Express 有一个约定, 开发人员把所有的视图文件都放到 views 文件中
     */
    
    var comments = [
    	{
    		name: '张三',
    		message: '今天天气不错',
    		dateTime: '2019-10-16'
    	},
    	{
    		name: '张三2',
    		message: '今天天气不错',
    		dateTime: '2019-10-16'
    	},
    	{
    		name: '张三3',
    		message: '今天天气不错',
    		dateTime: '2019-10-16'
    	},
    	{
    		name: '张三4',
    		message: '今天天气不错',
    		dateTime: '2019-10-16'
    	},
    	{
    		name: '张三5',
    		message: '今天天气不错',
    		dateTime: '2019-10-16'
    	}
    ]
    
    
    //配置 body-parser 中间件 (插件, 专门用来解析表单 POST 请求)
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({txtended: false}))
    //parse application/json
    app.use(bodyParser.json())
    
    
    // 如果要修改 views 目录
    //app.set('views', 'render函数的默认路径')
    
    app.get('/404', function (req, res) {
    	res.render('404.html')
    })
    
    app.get('/admin', function (req, res) {
    	res.render('admin/index.html', {
    		title: '管理系统'
    	})
    })
    
    //设置静态文件路经  用/public/ 代替  './public/'
    app.use('/public/', express.static('./public/') )
    
    app.get('/', function (req, res) {
    
    	//res.end('hello world') 
    	res.render('index.html', {
    		comments: comments
    	})
    
    })
    
    app.get('/post', function (req, res) {
    
    	res.render('post.html')
    
    })
    
    app.get('/pinglun', function (req, res) {
    
    	var comment = req.query
    	comment.dateTime = '2019-11-02 17:17:17'
    	//comments.push(comment)
    	comments.unshift(comment)
    	res.redirect('/')
    })
    
    app.post('/pinglun', function (req, res) {
    	/*
    	 * 获取 post 请求参数
    	 * 处理
    	 * 发送响应
    	 */
    	var comment = req.body
    	comment.dateTime = '2019-11-02 17:17:17'
    	//comments.push(comment)
    	comments.unshift(comment)
    	res.redirect('/')
    
    })
    
    app.listen(3000, function () {
    	console.log( 'express app is running...' )
    })
    

      

  • 相关阅读:
    css3.0新属性效果在ie下的解决方案(兼容性)
    ajax实现md5加密
    ajax给全局变量赋值问题
    前端资源分享
    7件你不知道但可以用CSS做的事
    jQuery 常用效果
    ThinkPHP redirect 传参
    join和split 的使用
    JSON_FORCE_OBJECT 数字索引数组 强转对象
    layer 弹框不显示内容
  • 原文地址:https://www.cnblogs.com/jasonLiu2018/p/11218026.html
Copyright © 2020-2023  润新知