【问题标题】:Error: options.uri is a required argument错误:options.uri 是必需的参数
【发布时间】:2016-10-15 20:28:18
【问题描述】:

我正在使用 node.js v4.6.0 和最新版本的 express、request 和 body-parser,但我得到一个我无法修复的错误代码,有什么想法吗?

这是我的代码:

var express = require('express');
var request = require('request');
var bodyparser = require('body-parser');

var app = express();
app.use(bodyparser.urlencoded({extended: true}))

    var webhook = process.env.DISCORD_WEBHOOK;

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

app.post('/webhook', (req, res) =>{
    request({
        method: 'POST',
        url: webhook,
        json: {
            "content": req.body.msg,
            "username": "Potato"
        }
    });

    res.redirect("/");
});

app.listen(80, () => {
    console.log("Server Started!");
});

以及我收到的错误消息:

Error: options.uri is a required argument
   at Request.init (C:\Users\kingn\node_modules\request\request.js:233:31)
   at new Request (C:\Users\kingn\node_modules\request\request.js:129:8)
   at request (C:\Users\kingn\node_modules\request\index.js:55:10)
   at C:\Users\kingn\index.js:15:5
   at Layer.handle [as handle_request]     (C:\Users\kingn\node_modules\express\lib\router\layer.js:95:5)
   at next (C:\Users\kingn\node_modules\express\lib\router\route.js:131:13)
   at Route.dispatch     (C:\Users\kingn\node_modules\express\lib\router\route.js:112:3)
   at Layer.handle [as handle_request] (C:\Users\kingn\node_modules\express\lib\router\layer.js:95:5)
   at C:\Users\kingn\node_modules\express\lib\router\index.js:277:22
   at Function.process_params (C:\Users\kingn\node_modules\express\lib\router\index.js:330:12)

有什么解决办法吗?

【问题讨论】:

  • 在请求方法中将“url”替换为“uri”

标签: node.js express request body-parser


【解决方案1】:

您需要在发出请求时提供 URL 信息,检查是否将正确的 URL 分配给您的 webhook 变量,即

var webhook = process.env.DISCORD_WEBHOOK; //webhook 应该分配一个有效的 URL 例如:'https://stackoverflow.com/'

试试 console.log(webhook);

找出您提出请求的 URL。

【讨论】:

  • 请提供更多详细信息,说明提问者如何解决问题。感谢您抽出宝贵时间回答这个问题。
【解决方案2】:

对象请求有参数 uri 而不是 url。 https://github.com/request/request#multipartrelated

 request({
    method: 'POST',
    uri: webhook,
    json: {
        "content": req.body.msg,
        "username": "Potato"
    }
});

【讨论】:

  • 你重启服务器了吗?
  • 它应该适用于 uri 和 url。确保 webhook 是带有 http:// 或 https:// 的完整 URL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2017-07-10
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多