如何从https .get()中的URL获取数据

时间:2018-04-01 20:10:31

标签: javascript node.js ajax express https

我正在尝试使用node.js,express和bodyParser来响应来自用户的输入,这是在表单中输入的。当我console.log(req.body)时,它会打印{}。如果网址中没有数据,那就有意义了。表单正确提交http://localhost:3000/stmd?symbol=FB。我尝试了JSON.parse(req)并从那里手动获取我需要的东西,但似乎因为键不是字符串,所以它无法正确解析它。我想知道的是在调用symbol = FB时如何获得app.get('/stmd' ...。我根本没有开始使用bodyParser,它似乎是最简单的方法。

const https = require('https');
const buffer = require('buffer');
const bodyParser= require('body-parser');
const express = require("express")
let app = express();
app.use(bodyParser.urlencoded({extended: true}));

app.listen(3000, () => {
  console.log("listening on 3000");
});

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

app.get('/stmd', (req, res) => {
  console.log(req.body)
  //res.redirect('/')
})

这是html表单

 <form id="usrInput" action="/stmd" method="get">
   <input type="text" name="symbol" placeholder="Symbol of Stock. Eg: FB for facebook">
   <button type="submit">Submit</button>
 </form>`

1 个答案:

答案 0 :(得分:0)

只有POST请求将表单数据作为请求正文发送。使用GET请求,您不需要正文解析器,只需使用请求的query属性:

app.get('/stmd', (req, res) => {
  console.log(req.query)
  //res.redirect('/')
})