node学习笔记express注册接口以及出现post请求后台接收不到的问题

上篇登陆接口
代码很简单 但是在写的时候出现了用axios传递参数 但是后台接收不到,一直undefined

admin.post('/register', async (req, res) => {
	const { username, email, password } = req.body
	let user = await User.findOne({ email })
	if (user) {
		console.log(req.body)
		res.send('用户名已存在')
	} else {
		User.create({
			username,
			email,
			password,
		})
			.then(() => {
				res.send('ok')
			})
			.catch((err) => {
				res.send(err)
			})
	}
})

假如html是用ajax传递参数的是没有问题的,

	$('.register').on('click', function () {
			$.ajax({
				type: 'post',
				url: 'http://localhost:3000/admin/register',
				data: {
					username: $('#name').val(),
					email: $('.email').val(),
					password: $('.password').val(),
				},
				success: function (res) {
					console.log(res)
				},
			})
			return false
		})

但是在用axios的时候出现问题了,后台打印req.body以及传递过来的参数是这个样子的 传递过来的是字符串 这是为什么呢

	let btn = document.querySelector('.register')
	btn.onclick = async () => {
		const res = await axios.post('http://localhost:3000/admin/register', {
			username: document.getElementById('name').value,
			email: document.querySelector('.email').value,
			password: document.querySelector('.password').value,
		})
		console.log(res)
	}

在这里插入图片描述

application/json ,axios默认提交就是使用这种格式。如果使用这种编码方式,那么传递到后台的将是序列化后的json字符串。如果在处理application/json时后台还是采用对付application/x-www-form-urlencoded的方式将会产生问题。例如后台node.js依然采用之前对付application/x-www-form-urlencoded的方法,那么得到的数据是这样子的

解决办法

既然我们知道axios post方法默认使用application/json格式编码数据,那么解决方案就有两种,一是后台改变接收参数的方法,另一种则是将axios post方法的编码格式修改为application/x-www-form-urlencoded,这样就不需要后台做什么修改了。

具体解决办法可看这篇

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Node Express后台管理项目需要掌握Node.js和Express框架的基础知识。首先,需要了解Node.js是什么,它是一个基于JavaScript的运行时环境,可以用来构建服务器端应用程序。然后,需要学习Express框架,它是一个基于Node.js的Web应用程序开发框架,可以简化服务器端应用程序的开发流程。 学习Node Express后台管理项目的关键步骤包括:创建项目,配置路由,处理请求和响应,连接数据库,实现用户认证和授权,设计并实现界面等。需要掌握Express框架的常用中间件、路由和控制器的使用,以及如何与数据库进行交互,如何实现用户认证和授权等。 在学习过程中可以通过阅读官方文档、参考教程和实际操作来深入理解Node Express后台管理项目的开发流程。另外,还可以利用开源项目进行学习和实践,例如使用GitHub上的相关项目来学习项目结构和代码规范,提高自己的编码能力。 学习Node Express后台管理项目还需要注重实践,通过自己动手实现项目功能来加深理解和掌握技能。同时,要注重与他人交流和合作,可以参加相关的技术社区或线下活动,与他人交流经验和学习成果,不断提升自己的技术水平。 总之,学习Node Express后台管理项目是一个系统全面的学习过程,需要持续不断地学习、实践和与他人交流,才能成为一名优秀的后台管理项目开发人员。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值