04 基于Express框架创建的Node后台获取前端传过来的参数

╰+哭是因爲堅強的太久メ 2023-02-28 05:43 424阅读 0赞

写在前面

NodeJS后台主要是用来实现后台数据库的增删改查,那么数据库的增删改查是需要依赖我们前端传过来的数据值,也就是说,我们要在数据库中插入一个值,插入的这个过程是NodeJS后台代码来做,具体要插入的值则是我们前端通过ajax或者axios传过去的值,所以就有一个问题:在NodeJS后台我们要接受前端传过来的值。所以这一篇文章应运而生。

环境要求

  • 安装了NodeJS环境(可以使用npm包管理工具)
  • 初始化了一个NodeJS后台项目demo

操作步骤

1、在后台接口中,我们一般是使用”req.body”来获取前端通过ajax或者axios传递过来的参数的,但是有时候我们通过req.body去获取的时候发现参数为空,所以我们就要找一种解决方法,在这里推荐使用body-parser插件来解决。

2、首先在后台项目根目录下运行命令行工具,然后安装这个插件,如下:

  1. npm install body-parser --save-dev

3、然后在index.js文件中添加如下两行配置代码:

  1. var express = require('express');
  2. var app = express();
  3. var bodyParser = require('body-parser'); //首先要引入这个插件
  4. var home = require('./routers/home');
  5. var geocode = require('./routers/geocode');
  6. //设置跨域访问
  7. app.all('*', function(req, res, next) {
  8. res.header("Access-Control-Allow-Origin", "*");
  9. res.header("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");
  10. res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  11. res.header("X-Powered-By", ' 3.2.1')
  12. res.header("Content-Type", "application/json;charset=utf-8");
  13. next();
  14. });
  15. app.use(bodyParser.urlencoded({ //配置这两行代码
  16. extended: true
  17. }));
  18. app.use(bodyParser.json()); //配置这两行代码
  19. app.use('/', home);
  20. app.use('/geocode', geocode);
  21. app.listen(3001);

4、在后台接口代码中去获取前端传递的参数,如下:

  1. var express = require('express');
  2. var router = express.Router();
  3. router.post('/forward', function(req, res) {
  4. res.send({
  5. state: 'success',
  6. data: req.body.queryStr //获取前端传递的参数
  7. });
  8. });
  9. module.exports = router;

5、在前端通过ajax来访问,如下:

  1. $.ajax({
  2. url: 'http://localhost:3001/geocode/forward',
  3. type: 'Post',
  4. data: {
  5. queryStr: '成都'
  6. },
  7. dataType: 'json',
  8. success: function(result) {
  9. console.log(result);
  10. },
  11. error: function(err) {
  12. console.log('请求出错',err);
  13. }
  14. })

6、最后可以看到结果如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1MTE3MDI0_size_16_color_FFFFFF_t_70

总结

这篇文章介绍了一个POST类型的后台NodeJS接口如何接收前端传过来的参数问题,对于GET类型的后台接口,我们后续讨论,因为博主暂时并没涉及到GET类型的后台接口需求。

发表评论

表情:
评论列表 (有 0 条评论,424人围观)

还没有评论,来说两句吧...

相关阅读