node.js - 引用错误 : request is not defined

标签 node.js express

我正在尝试复制 facebook messenger bot但不断收到 request is not defined

与 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);
    }
  });  
}

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

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 ?谢谢

最佳答案

这个例子使用了third-party Request module .

您还可以使用 native request像这样:require('http').request(),如果你愿意,但我要说的是,request 模块很常见,也是一个很好的工具使用。

你的request,被注释掉了,指向express.request。如果像 request() 这样使用会抛出错误,因为它不是函数。所以,你应该真正使用 Request 模块,或者调整代码以使用原生 http.request

2020 年更新

请求模块现已弃用,因此如果您正在阅读此答案,请使用 native 模块或查找流行的第三方库,如 Axios 或其他。

关于node.js - 引用错误 : request is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42351983/

相关文章:

javascript - 如何在Protractor中调用其他测试用例中的公共(public)测试用例

node.js - CORS预检 channel 未成功,React to Express

node.js - appfog 无法安装 Node.js 应用程序

node.js - 提取过程中带有 package.json 的 NPM 安装退出 --> gunzTarPerm 且没有错误消息

node.js - 使用 Puppeteer 获取所有 p 标签

exception - 信息 - 未处理的 socket.io url

c# - 如何修复组件启动时的控制台错误

node.js - 如何一起使用express.json和express.raw?

javascript - Node JS HTTP 服务器 request.on ('data' ) 事件失败

node.js - Express 不起作用的 Jade 布局中的 block 和扩展