Node.js和ExpressJS正文解析器包检索数据

时间:2017-06-08 10:06:28

标签: javascript node.js express post body-parser

确定第一次使用Node的用户,我正在尝试将数据发送到backend/index.js

要求

  • 将数据发布到后端节点
  • 检索发布的数据并将值存储为变量

问题是什么

该帖子有200个成功,有效。

然而,当我导航到:

  

http://localhost:8080/backend/index

我明白了:

  

无法获取/后端/索引

我哪里错了?

这是我的前端帖子

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://localhost:8080/backend/index.js",
  "method": "POST",
  "headers": {
    "content-type": "application/x-www-form-urlencoded"
  },
  "data": {
    "id": "1223",
    "token": "223",
    "geo": "ee"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

我正在尝试从后端节点中检索此数据并将其存储为变量。

backend / index.js

// grab the packages we need
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;

// routes will go here

// start the server
app.listen(port);
console.log('Server started! At http://localhost:' + port);

var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

// POST http://localhost:8080/api/users
// parameters sent with
app.post('/backend/index', function(req, res) {
    var user_id = req.body.id;
    var token = req.body.token;
    var geo = req.body.geo;

    res.send(user_id + ' ' + token + ' ' + geo);
});

使用屏幕截图更新 enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

我认为你没有指定GET方法,你可以这样做

app.get('/', function(req, res) {
    res.send('do something 1');
});

app.get('/backend/index', function(req, res) {
    res.send('do something 2');
});

希望这会有所帮助!

答案 1 :(得分:0)

因为您发布了Api而没有参数就无法获得结果。 你的帖子Api只会在网页浏览器上点击网址后才会提供输出,所以需要post post为Post Api。

enter image description here

现在您可以毫无问题地获得输出。

先谢谢