在nodejs

时间:2019-03-26 14:09:29

标签: javascript node.js express

我希望用户提交一个URL作为表单输入(例如:“ http://api.open-notify.org/astros.json”),并从提交的URL中读取内容。

我不确定我当前的方法是否正确。我应该在下面的URL字段中输入什么?

var options = {
    url: '....',
    method: 'GET',
    headers: {'Content-Type' : 'application/x-www-form-urlencoded' }
}

2 个答案:

答案 0 :(得分:0)

似乎您已经加载了Express逻辑。 IMO,如果您已经表示快递已经在工作,请创建一个用户可以点击的发布路线:

app.post("/form",(req,res)=>{
    //See the request body here.
    console.log(req.body)
);

然后您将使用上面的URL进行AJAX呼叫。值得注意的是,您将需要在server.js文件上使用正文解析器。

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

该插件可让您更轻松地从客户端在服务器端进行解析。

答案 1 :(得分:0)

您可以执行以下操作(我想这就是您想要的):

我建议使用request-promise软件包

const rp = require('request-promise');
// post router
app.post('/readUrl', async (req, res) => {
  const uri = req.body.url // http://api.open-notify.org/astros.json

  const options = {
    uri,
    headers: {
      // maybe set some headers to accept other formats of response
    },
    // Automatically parses the JSON string in the response
    json: true
  };

  const data = await rp(options);
  // data is json
  res.json(data);
})