用Express重写之前的留言本案例

目录

在Express中获取表单GET请求参数
req.query
获取表单POST请求体数据
由于Express中没有内置获取表单POST请求体的API,这里需要使用一个第三方包body-parser
有了这样一个中间件,就可以通过req.body来获取表单POST请求体数据了

安装:npm i -S body-parser

配置可参考Express官网

关于案例,我们修改两个地方

app.js

const express = require('express')
const app = express()
var sd = require('silly-datetime')
var bodyParser = require('body-parser')

// 配置body-parser中间件
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())

app.use('/public/', express.static('./public/'))
app.engine('html', require('express-art-template'))

var comments = [
	{
		name: '宙斯',
		message: '我是众神之王',
		dateTime: '2021-01-20'
	},
	{
		name: '波塞冬',
		message: '我是海神',
		dateTime: '2021-02-21'
	},
	{
		name: '雅典娜',
		message: '我是智慧之神',
		dateTime: '2021-03-22'
	},
]

app.get('/', function (req, res) {
	res.render('index.html', {
		comments: comments
	})
})

app.get('/post', function (req, res) {
	res.render('post.html')
})

app.post('/post', function (req, res) {
	var comment = req.body
	comment.dateTime = sd.format(new Date(), 'YYYY-MM-DD HH:mm')
	comments.unshift(comment)
	res.redirect('/')
})

app.listen(3000, function () {
	console.log('The server is running at port 3000...')
})

views/post.html(表单提交改成post请求)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>发表留言</title>
	<link rel="stylesheet" href="/public/lib/bootstrap/dist/css/bootstrap.css">
</head>
<body>
	<div class="header container">
		<div class="page-header">
			<h1>Home<small> Leave a comment</small></h1>
		</div>
		<div class="comments container">
			<form action="/post" method="get">
				... //原代码不变
			</form>
		</div>
	</div>
</body>
</html>

这是我们要安装的依赖

"dependencies": {
    "art-template": "^4.13.2",
    "body-parser": "^1.19.0",
    "bootstrap": "^5.1.3",
    "express": "^4.17.1",
    "express-art-template": "^1.0.1",
    "jquery": "^3.6.0",
    "silly-datetime": "^0.1.2"
  }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值