ReferenceError:请求未定义 [英] ReferenceError: request is not defined

查看:87
本文介绍了ReferenceError:请求未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试复制 facebook Messenger机器人,但请保留未定义请求.

Im trying to replicate a facebook messenger bot but keep getting request is not defined.

与Facebook相同的代码:

Same code as facebook:

function callSendAPI(messageData) {
  request({
    uri: 'https://graph.facebook.com/v2.6/me/messages',
    qs: { access_token: PAGE_ACCESS_TOKEN },
    method: 'POST',
    json: messageData

  }, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      var recipientId = body.recipient_id;
      var messageId = body.message_id;

      console.log("Successfully sent generic message with id %s to recipient %s", 
        messageId, recipientId);
    } else {
      console.error("Unable to send message.");
      console.error(response);
      console.error(error);
    }
  });  
}

我的节点 server.js 看起来像这样:

My node server.js looks like this:

const express = require('express');
const bodyParser = require('body-parser');
//const request = express.request;
const PAGE_ACCESS_TOKEN = 'abc';

let app = express();

app.use(bodyParser.urlencoded({ extended: false }));

// parse application/json
app.use(bodyParser.json());

[...]

function sendTextMessage(recipientId, messageText) {
  var messageData = {
    recipient: {
      id: recipientId
    },
    message: {
      text: messageText
    }
  };

  callSendAPI(messageData);
}

function callSendAPI(messageData) {..}

[...]

我是否缺少Express的东西?谢谢

Am I missing something with express? Thanks

推荐答案

此示例使用了第三-方请求模块.

您还可以使用原生请求,例如: require('http').request(),如果愿意的话,但是我想说 request 模块非常常见,并且是一个很好的使用工具.

You could also use the native request like so: require('http').request(), if you want to, but I would say, that the request module is very common, and a good tool to use.

您的 request 指向 express.request .如果像 request()这样使用,则会抛出错误,因为它不是函数.因此,您应该真正使用Request模块,或调整代码以使用本机 http.request .

Your request, which is commented out, points to express.request. If used like request() will throw an error, since it's not a function. So, you should really use the Request module, or adjust the code to use native http.request.

现在不建议使用请求模块,因此,如果您正在阅读此答案,请使用本机模块或查找流行的第三方库,例如Axios或其他.

The request module is deprecated now, so if you are reading this answer, use the native module or find a popular third-party library like Axios or others.

这篇关于ReferenceError:请求未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆