Javascript 是否将参数传递给节点js API调用?
我正在为来自S3存储桶的文件生成预授权链接,但希望将文件名作为参数传入下载 这就是我的API的外观:Javascript 是否将参数传递给节点js API调用?,javascript,node.js,Javascript,Node.js,我正在为来自S3存储桶的文件生成预授权链接,但希望将文件名作为参数传入下载 这就是我的API的外观: reports.get('/xxx', async (req, res) => { var AWS = require('aws-sdk'); var s3 = new AWS.S3(); var params = { Bucket: config.xxx, Key: 'xxx/xxx.json', Expires: 60 * 5 }
reports.get('/xxx', async (req, res) => {
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
var params = {
Bucket: config.xxx,
Key: 'xxx/xxx.json',
Expires: 60 * 5
}
try {
s3.getSignedUrl('getObject', params, function (err, url) {
if(err)throw err;
console.log(url)
res.json(url);
});
}catch (err) {
res.status(500).send(err.toString());
}
});
这就是我从前端对它的称呼:
getPreauthorizedLink(e){
fetch(config.api.urlFor('xxx'))
.then((response) => response.json())
.then((url) => {
console.log(url);
});
}
如何向API调用和相应的API方法添加参数以传递文件名?看起来您正在服务器端使用
express
,因此您只需在请求URL
中添加参数,然后在服务器端获取参数即可
在前端或客户端,您将像
fetch('/xxx/FileName')
在后端,您将修改您的路由,如
reports.get('/xxx/:fileName', ..){
var fileName = req.params.fileName
}
另外,您不希望每次收到请求时都要求。所以您最好移动
var AWS=require('AWS-sdk')代码>在您的请求处理程序之外 您是否在服务器端使用express?您可以使用查询参数并通过这种方式从请求URL读取文件名。