2017-07-03 1 views
0

私はCentOS 7サーバー(http://serverip:3000/)で簡単なナイトメアアプリを実行し、永遠に実行され、単純なres.send( 'hello world')で渡されても結果は返されません。ナイトメアは永遠に走る?

私はノード6.11を使用しています。同じコードがローカルPC上で正常に動作します。

const express = require('express') 
    const app = express() 

    app.get('/', function (req, res) { 
    //res.send('hello world'); => works fine for port 3000 
     var Nightmare = require('nightmare');  
    var nightmare = Nightmare({ show: false }); 

    nightmare 
     .goto('https://www.google.com') 
     .wait('#searchform') 
     .evaluate(function() { 
     return (document.body.innerHTML); 
     }) 
     .end() 
     .then(function (result) { 
     console.log(result); 
     }) 
     .catch(function (error) { 
     console.error('Search failed:', error); 
     }); 
    }) 

    app.listen(3000, function() { 
     console.log('Example app listening on port 3000!') 
    }) 
+0

実行電子スタンドアロンは、google.comはあなたのCentOSのサーバーからアクセス可能ですか?コードは私にとってうまく見えます。デフォルト(30秒)をタイムアウトするか、何らかのエラーが表示されるはずです。 – devilpreet

+0

Linuxでヘッドレスnightmarejsを実行するには問題があるようです。 Googleには苦情がたくさんありますが、動作させるのは難しいです。 –

+0

'Express 'を使わずに、つまり直接行ってみましたか? –

答えて

1

まず、Electronには静的ライブラリ依存関係があり、サーバーに別途インストールする必要があります。

また、XVFBが表示されていないため、ノードサーバーをXVFBで実行する必要があります。 (https://www.x.org/archive/X11R7.6/doc/man/man1/Xvfb.1.xhtml

コマンドは次のようになります。 $ xvfb-run node <your-server>.js

私はそうのようにUbuntuの上のすべてをインストールします。

apt-get install -y libgtk2.0-0 libnotify-bin libgconf-2-4 libnss3 libxss1 
x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic 
x11-apps clang libdbus-1-dev libgtk2.0-dev libnotify-dev libgnome-keyring- 
dev libgconf2-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 
libnss3-dev xvfb 

あなたはCentOSのと同等の操作を行う必要があります。さらに、デバッグ$ <your-project-directory>/node_modules/electron/dist/electron