【问题标题】:res.send sending whole object as a response instead of the contentres.send 发送整个对象作为响应而不是内容
【发布时间】:2023-03-13 00:51:01
【问题描述】:
  'use strict'
    var express = require('express');
    var bodyParser = require('body-parser');
    var request = require('request');
    var awsServerlessExpressMiddleware = require('aws-serverless-express/middleware');
    var app = express();
    var port = process.env.PORT || 5000;
    var VALIDATION_TOKEN = 'Serverless_My_Token';
    app.set('port', (port));
// Process application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({extended: true}));
app.use(awsServerlessExpressMiddleware.eventContext());
    // Process application/json
    app.use(bodyParser.json());
// for Facebook verification
        app.get('/webhook/', function (req, res) {
            var jsonObject = JSON.parse(req.rawHeaders[1]);
            if (jsonObject.params.querystring['hub.verify_token'] === 'serverless_my_token') {
         var hubChallenge = jsonObject.params.querystring['hub.challenge'];

         return res.send(hubChallenge);
    }
    res.send('Error, wrong token')
        });

当调用 get API res.send 是发送整个响应对象,

{
  "statusCode": 200,
  "body": "",
  "headers": {
  },
  "isBase64Encoded": false
}

我只需要发送 hubChallenge 变量作为响应:

hub.challenge number:示例:245421998 作为响应。

我怎样才能只让 hubchallenge 变量作为响应而不是包含状态的整个对象返回。等等。

错误:

The URL couldn't be validated. Response does not match challenge, expected value="245421998", received="{\"statusCode\":200,..."

【问题讨论】:

标签: node.js request response aws-lambda facebook-chatbot


【解决方案1】:

你不应该在app = express(); 之后的某个地方添加这个到你的代码:

app.use(awsServerlessExpressMiddleware.eventContext());

现在你导入 awsServerlessExpressMiddleware 的接缝,但你没有在你的应用程序的任何地方使用它。

【讨论】:

  • 我的代码中有它,在示例中没有更新。添加问题
猜你喜欢
  • 1970-01-01
  • 2021-12-02
  • 2020-01-31
  • 2016-09-24
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
相关资源
最近更新 更多