2016-06-23 3 views
0

Ich arbeite an einer Gulp Aufgabe, die das Ergebnis von einer externen API (https://api.wordpress.org/secret-key/1.1/salt/) abrufen und in einer Variablen für den Einsatz in der Pipeline speichern würde.Fetch URL-Antwort über Schluck

Ich habe versucht parseurl Paket des Knotens mit wie diese

const gulp = require('gulp'); 
const replace = require('gulp-replace'); 
const plumber = require('gulp-plumber'); 
const parseurl = require('parseurl'); 

gulp.task('wordpress:config', function(){ 
    var salted_hash, url ="https://api.wordpress.org/secret-key/1.1/salt/"; 
    return gulp.src('./src/wp-config.php') 
    .pipe(plumber(plumberErrorHandler)) 
    .pipe(
     function(){ 
      salted_hash = parseurl(url); 
      console.log(salted_hash); 
      return salted_hash; 
     } 
     ) 
    .pipe(replace('{DB_NAME}', project.db_name)) 
    .pipe(replace('{DB_USER}', project.db_user)) 
    .pipe(replace('{DB_PASS}', project.db_pass)) 
    .pipe(replace('{DB_PREFIX}', project.theme_slug+'_')) 
    .pipe(replace('{SALTED_HASH}', salted_hash)) 
    .pipe(gulp.dest('./'+project.wordpress)); 
}); 

Diese gibt einen Fehler zurück: TypeError: dest.on is not a function. Ich bin mir nicht sicher, ob dies überhaupt in die richtige Richtung geht und könnte Ihre Hinweise verwenden.

Antwort

0

Ich konnte es stattdessen mit Anfrage() funktioniert, und die Pipeline in der Anfrage Rückruf starten, wie folgt aus:

const gulp = require('gulp'); 
const request = require('request'); 
const replace = require('gulp-replace'); 
const plumber = require('gulp-plumber'); 

gulp.task('wordpress:config', function() { 
    return request("https://api.wordpress.org/secret-key/1.1/salt/", function(error, response, body) { 
     if (!error && response.statusCode == 200) { 
      gulp.src('./src/wp-config.php') 
      .pipe(plumber(plumberErrorHandler)) 
      .pipe(replace('{DB_NAME}', project.db_name)) 
      .pipe(replace('{DB_USER}', project.db_user)) 
      .pipe(replace('{DB_PASS}', project.db_pass)) 
      .pipe(replace('{DB_PREFIX}', project.theme_slug + '_')) 
      .pipe(replace('{SALTED_HASH}', body)) 
      .pipe(gulp.dest('./' + project.wordpress)); 
     } 
    }); 
});