首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用fetch向服务器发送查询参数?

如何使用fetch向服务器发送查询参数?
EN

Stack Overflow用户
提问于 2019-08-01 01:13:09
回答 2查看 4.3K关注 0票数 0

我有一个express.js服务器,它发出HTTP请求来检索天气数据。在我的JavaScript中,我获得了纬度和经度变量。我需要使用fetch将这些变量发送到我的express.js服务器。我该怎么做?

我尝试过将查询参数作为请求对象的主体发送,但我了解到GET请求不能这样做。

快递服务器代码:

代码语言:javascript
复制
app.get("/data", (req, res) => {
url  =  `http://api.openweathermap.org/data/2.5/uvi?appid=${API}&lat=${latitude}&lon=${longitude}`;

axios
    .get(url)
    .then(response  => {
        res.send(response.data);
    })
    .catch(error  => {
        console.log(errorx);
    });
});

如何从我的JavaScript中获得纬度和经度变量?

我希望快递服务器拥有所需的变量并执行GET请求。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-01 03:18:43

查询字符串参数是请求URL的一部分。

在执行GET请求时,如果端点为http://localhost:3000/data?lat=0&long=0,请尝试以下操作以传递纬度和经度

代码语言:javascript
复制
app.get("/data", (req, res) => {
  // Add this to retrieve query string values
  let latitude = req.query.lat;
  let longitude = req.query.long;

  // Rest of your code
});
票数 2
EN

Stack Overflow用户

发布于 2019-08-01 01:30:52

我将和大家分享我以前做过的一个例子。为我工作。

/server.js

代码语言:javascript
复制
var http = require('http');
var fs = require('fs');

var express = require('express');
var app = express();
var path = require('path');

app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials', true);
    next();
});

app.use('/app', express.static(__dirname + '/app'));
app.get('/', function (req, res) {
    res.sendFile(path.join(__dirname + '/app/index.html'));//my app page , may be different for you
});

var routes = require('./scripts/routes'); 
routes(app); 

app.listen(8080);

console.log('-> Port : 8080');

/scripts/routes.js

代码语言:javascript
复制
'use strict';


module.exports = function (app) {
    var todoList = require('../scripts/controller');

    app.route('/company/:companyId')
        .get(todoList.getInfo)

    app.route('/product-add/:name/:meter')
        .get(todoList.addPro);    

};

/scripts/controller.js

代码语言:javascript
复制
'use strict';

var sql = require("mssql");//I used mssql. may be different for you
var request = new sql.Request();

exports.getInfo = function (req, res) {


var comId = req.params.companyId

request.query('select * from company where id='+comId , function (err, recordset) {

    if (err) console.log(err)

    res.json(recordset);

});


};

exports.addPro = function (req, res) {

   // req.params.name 
  // req.params.meter

};

查询地址:http://127.0.0.1:8080/company/15

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57300659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档