在 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...' )
})

  

express 获取post 请求参数的更多相关文章

  1. Spring MVC(三)控制器获取页面请求参数以及将控制器数据传递给页面和实现重定向的方式

    首先做好环境配置 在mvc.xml里进行配置 1.开启组件扫描 2.开启基于mvc的标注 3.配置试图处理器 <?xml version="1.0" encoding=&qu ...

  2. JS获取url请求参数

    JS获取url请求参数,代码如下: // 获取url请求参数 function getQueryParams() { var query = location.search.substring(1) ...

  3. SpringBoot获取http请求参数的方法

    SpringBoot获取http请求参数的方法 原文:https://www.cnblogs.com/zhanglijun/p/9403483.html 有七种Java后台获取前端传来参数的方法,稍微 ...

  4. SpringBoot 拦截器获取http请求参数

    SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 目录 SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 获取http请求参数是一种刚需 定义拦截器获取请求 为 ...

  5. Struts2------Result处理&获取页面请求参数&API

    一.Result处理 1.1 说明 平常我们设置跳转页面,是在action标签里面加上 result标签来控制,这种设置的页面跳转,称之为 局部结果页面:但是我们有时候在很多个action里面,针对不 ...

  6. springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...

  7. springboot(服务端接口)获取URL请求参数的几种方法

    原文地址:http://www.cnblogs.com/xiaoxi/p/5695783.html 一.下面为7种服务端获取前端传过来的参数的方法  常用的方法为:@RequestParam和@Req ...

  8. springboot获取URL请求参数的几种方法

    原文地址:http://www.cnblogs.com/xiaoxi/p/5695783.html 1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于pos ...

  9. beego获取用户请求参数的方法

    我们经常需要获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: GetString(key string) string Get ...

随机推荐

  1. Ubuntu 16.04下使用docker部署ceph集群

    ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...

  2. CF 480 B Long Jumps (map标记)

    题目链接:http://codeforces.com/contest/480/problem/B 题目描述:     Long Jumps   Valery is a PE teacher at a ...

  3. 安装JDK ,提示 错误1316 指定的账户已存在

    基于情况: 安装了一个JDK 后,在文件目录中删除了相关文件,之后再次安装,提示  错误1316 指定的账户已存在 造成原因:安装JDK,相当于安装了一个软件,要使用系统的软件卸载功能卸载,不能只删除 ...

  4. EQS 自定义Context 如何用Testing Pawn 进行测试?

    比如自定义了一个玩家的Context, 那么需要把这个玩家直接放置到场景中 在Context中override Provide Single Actor函数,按类型获取所有的Actor,其中第一个作为 ...

  5. es分片shard的数量

    适当的提升分片数量可以提升建立索引的速度: 一般情况下:一个索引库建立5-20个分片是最合适的: 注意:如果分片过少或者过多,都会降低检索的速度 分片数过多会导致: 1. 会导致打开比较多的文件2. ...

  6. 冲刺周二The Second Day

    一.SecondDay照片 二.项目分工 三.今日份燃尽图 四.项目进展 码云团队协同环境构建完毕 利用Leangoo制作任务分工及生成燃尽图 完成AES加解密部分代码 用代码实现对文件的新建.移动. ...

  7. 麦子lavarel---10、一些第三方应用注意

    麦子lavarel---10.一些第三方应用注意 一.总结 一句话总结: 其实把重要的几个功能弄一个就好了,邮箱验证,手机号验证,支付验证,都是调用第三方接口,也很简单 1.关于页面和服务端校验的看法 ...

  8. React Native商城项目实战16 - 购物中心详细页

    逻辑分析: 首页(Home)加载的购物中心组件(ShopCenter),传递url数据: ShopCenter里根据url加载购物中心详细页组件(ShopCenterDetail), ShopCent ...

  9. Ta还没有分享呢,过段时间再来看看吧~ 解决办法

    自己摸索出来的.只能查看以前分享的奥.   找到要查看用户的id号   利用特百度搜索工具实现检索 http://www.tebaidu.com/user--1.html 将红字部分替换为刚才复制的u ...

  10. 插桩 inline hook 动态二进制插桩的原理和基本实现过程

    插桩测试 https://source.android.google.cn/compatibility/tests/development/instrumentation https://zhuanl ...