我有以下服务器.js获取路由
app.get('/', function(req, res) {
var url;
var final_res = [];
endpoints.forEach(function(url){
request(url, function(error,response,body){
if(!error && response.statusCode == 200){
final_res.push(url.url);
console.log(url.url);
}else{
res.send(err);
console.log(err);
}
});
});
});
这是我的客户端js,我用jQuery获取完全相同的get
$(document).ready(function() {
$.get('http://localhost:3000/', function(data) {
console.log(data);
$("#body").text(data);
});
});
当我打开index.html时,它会正确显示用户交互界面,并在我的终端中执行我的server.js它会正确显示url。我无法完成的是如何使用我的jQuery接收到的数据来填充我的html中的表。我的表将填充从我的endpoint获取的url。
我有一些nodejs的背景,但我不能总结这个。
您必须等待所有请求得到解决,然后将<code>final_res概念。如果您不想使用这些资源,则需要手动计数并等待所有请求,使用计数器了解所有请求何时完成,如下所示:
app.get('/', function(req, res) {
var url;
var final_res = [];
var respCounter = endpoints.length;
endpoints.forEach(function(url){
request(url, function(error,response,body){
respCounter--;
if(!error && response.statusCode == 200){
final_res.push(url.url);
console.log(url.url);
}else{
res.send(err);
console.log(err);
}
if(respCounter == 0) {
res.send(final_res);
}
});
});
});
由于您需要知道多个请求何时完成,我建议您改用请求-promise库,这样您就可以使用promise来跟踪所有请求何时完成。该库还会自动检查statusCode。所以,你可以这样做:
const rp = require('request-promise');
app.get('/', function(req, res) {
Promise.all(endpoints.map(url => {
return rp(url).then(r => {
return url.url;
}).catch(err => {
// rather than error, just return null result
return null;
})
})).then(results => {
// filter out null values, then send array as the response
res.json(results.filter(item => item !== null));
}).catch(err => {
console.log(err);
res.sendStatus(500);
});
});
这将并行运行所有请求,但按顺序收集结果,这将导致最快的总体运行时间。
如果你想一次运行一个,你可以像这样使用async/wait:
const rp = require('request-promise');
app.get('/', async function(req, res) {
let results = [];
for (let url of endpoints) {
try {
let r = await rp(url);
if (r) {
results.push(url.url);
}
} catch(e) {
// ignore error
}
}
res.json(results);
});
EDIT 2020年1月 - 维护模式下的请求()模块
仅供参考,request
模块及其衍生产品,如requestpromise
,目前处于维护模式,不会积极开发以添加新功能。你可以在这里阅读更多关于推理的内容。本表列出了一系列备选方案,并对每种方案进行了讨论。我自己也一直在使用<code>get()
如何创建包含以下值f(0),f(1),…,f(N-1)的const std::数组,其中f是任何函数:静态constexpr size_t f(int index)?当我确切地知道N时,我显然可以写
我有一个数据网格,其中组合框是从Db填充的。 我试图实现的是,当我在“Esercizio”列中选择一些内容时,“Video”列的单元格会自动填充Db的“link_video”列中的相应值。 因此,如果我选择“回扣”,我需要在文本框单元格中看到来自db的回扣链接视频。 这是我用来在表单加载时填充组合框的代码: private void Myform_Load(对象发送方,EventArgs e) {
本文向大家介绍基于jQuery的表单填充实例,包括了基于jQuery的表单填充实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇基于jQuery的表单填充实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
我有以下问题,因为我是pyspark的新手。基于来自两列的值的条件,我想填充第三列。条件是: < li >如果分号包含在col2中,请检查col1 < ul > < li >如果col1 == 1,则取分号前的值 < li >如果col1 == 2,则取分号后的值 这就是数据帧的样子。 我创建了下面的udf,它给出了错误“不能将列转换为布尔值:请使用” 我通过谷歌搜索各种功能构建了这个udf,所以
根据和的公共列在中使用填充列的最佳方法是什么? 得到: 编辑:我还想将列名更改为,这样预期的输出如下所示: 尝试过: 它发现了错误: 更新2: : :
Arrays 类提供了一个 fill() 方法,可以在指定位置进行数值填充。fill() 方法虽然可以填充数组,但是它的功能有限制, 只能使用同一个数值进行填充。语法如下: 其中,array 表示数组,value 表示填充的值。 例 1 声明一个 int 类型的 number 数组,然后通过 for 语句进行遍历,在该语句中调用 Arrays 类的 fill() 方法来填充数组,并输出数组中元素的