2017-11-06 1 views
0

Wie Alptraum auf jede Anfrage durchzuführen?Wie kann man bei jeder Anfrage Alpträume erfüllen?

Die folgende Methode wird nur einmal ausgeführt, ab der zweiten wird das Skript nicht ausgeführt. Es ist in einer unendlichen Last. Was kann es sein?

Danke

app.get('/', (req, res) => { 

    nightmare 
     .goto('https://site.com.br') 
     .wait(() => { 
      return $('#url').text() !== '' 
     }) 
     .evaluate(() => { 

      return $('#url').text() 
     }) 
     .end() 
     .then((result) => { 

      res.send(result) 

     }) 
     .catch((error) => { 
      console.error('Search failed:', error); 
     }); 

}) 
+0

Es kann ein Albtraum sein – Yitzchak

+0

Was meinst du, es läuft nur einmal? Außerdem sollten Sie 'res.send' in Ihrer catch-Anweisung aufrufen. – dzm

Antwort

0

Es läuft nur einmal, weil Sie .end auf Ihre erste Anfrage fordern, die die Instanz beendet und Sie verwenden können, um die Instanz für zukünftige Anforderungen nicht.

Entfernen Sie diese Zeile und es sollte absolut in Ordnung sein.

app.get('/', (req, res) => { 

    nightmare 
     .goto('https://site.com.br') 
     .wait(() => { 
      return $('#url').text() !== '' 
     }) 
     .evaluate(() => { 

      return $('#url').text() 
     }) 
     .end() // <-- remove this line 
     .then((result) => { 

      res.send(result) 

     }) 
     .catch((error) => { 
      console.error('Search failed:', error); 
     }); 

}) 
Verwandte Themen