javascript - 如何使用 fetch 将查询参数发送到服务器?
问题描述
我有一个 express.js 服务器,它发出一个 HTTP GET 请求来检索天气数据。在我的 JavaScript 中,我获得了纬度和经度变量。我需要使用 fetch 将这些变量发送到我的 express.js 服务器。我怎样才能做到这一点?
我尝试将查询参数作为请求对象的主体发送,但我了解到 GET 请求不能这样做。
快递服务器代码:
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 请求。
解决方案
我将与您分享一个我以前做过的例子。为我工作。
/server.js
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
'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
'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
推荐阅读
- python - Python / pingouin : ValueError: zero_method 'wilcox' 和 'pratt' 如果 x - y 对于所有元素都为零,则不起作用
- c - 当我中断主进程的执行时,子进程会发生什么?
- github - 从 github 导入项目并执行 main 没有错误后,out 文件在 intellij 中标记为红色
- node.js - 如何找出连接到 Express 服务器的客户端的 DNS 名称服务器?
- java - 如何在 JavaExec 任务中正确添加 --add-opens 到 jvmArgs
- c# - “System.Dynamic.ExpandoObject”不包含 Specflow C# 中“用户名”的定义
- python - 如何使用来自用户的多个输入过滤数据框
- javascript - 在板上传递图像
- java - 有没有办法从 Java 类中检查它的超类是否属于同一类型?
- javascript - 用于创建 DOM 元素的 For 循环中的 JSON“具有”方法