request
및 cheerio
을 사용하여 게시 매개 변수의 링크에서 각 동영상의 src를 가져 오려고합니다.각 루프마다 요청 URL을 어떻게 변경합니까?
각 동영상의 src를 가져 오려면 루프마다 요청 옵션의 url을 변경해야합니다. 하지만 아래의 코드와 같은 src를 얻으려고하면 url을 변경하는 것이 요청보다 빠르기 때문에 요청이 변경되기 전에 url을 변경해야합니다. 내가 원하는 것을 구현하기 위해 무엇을 할 수 있습니까?
여기에 코드를입니다
let opt = {
transform: function(body) {
return cheerio.load(body);
}
};
router.post('/api', function(req, res) {
let idArray = req.body.data;
for(var i=0; i<idArray.length; i++) {
opt.uri = baseURL + idArray[i];
request(opt)
.then(function($) {
console.log($('video').src);
}
로그 (그것은 인쇄 같은 일) https://example.mp4/asdfasdf https://example.mp4/asdfasdf
편집
이 코드를 사용할 때, 나는 [I]
idArray에서 정의되지 않은 얻을for(var i=0; i<idArray.length; i++) {
console.log("Before", baseURL + idArray[i])
rpap(baseURL + idArray[i])
.then(function($) {
console.log(idArray);
console.log("After", baseURL + idArray[i]);
}
로그
before http://example.com/adsfasdf
before http://example.com/famvvasd
after http://example.com/undefined
after http://example.com/undefined
그 코드가 의미하는 것 ... "opt, uri"를 얻지 못합니까? –
@PhillipYS 이것은 [ES6 소멸 할당] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)의 일부입니다. 기본적으로'... opt'는'opt' 안에있는 모든 속성들을 그것이 쓰여진 객체로 확장합니다. '{uri}'는 유효한 ES6이며'{uri : uri} '와 같은 의미입니다. 따라서 처리 된 코드는'request ({transform : function() {...}, uri : uri})'와 유사합니다. –