2017-03-14 7 views
1

私はnodejsコードで子プロセスとしてPhantomJSを使用しており、ラスタライズするたびにブラウザ用にTZを設定する必要があります。設定済みのPhantomJSでブラウザタイムゾーンを設定する

以下のようにそれは、子プロセスとして実行されます。関数を呼び出している間TZを指定する方法はありません

childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) { 
// handle results 
}); 

どのようにこれを達成できますか?

+0

あなたは 'TZ =ヨーロッパ/ロンドンノードindex.jsようなあなたの環境でそれを設定することができ'。 npmスクリプトに含めることができます。 –

+0

PhantomJSを子プロセスとして使用しており、ユーザーの入力に依存するため、nodejsの親はサーバー時間に実行する必要があります。 – swateek

+0

自分の答えが十分であれば、それを受け入れるべきです。 –

答えて

1

ここに行きます! options argument of the execFile functionを使用し、カスタムTZ=Europe/Londonを子プロセスの環境に追加します。

index.js

const execFile = require('child_process').execFile 
const env = Object.assign(process.env, { 'TZ': 'Europe/London' }) 
const child = execFile('./env-test.js', { env }, (error, stdout, stderr) => { 
    if (error) { 
     throw error; 
    } 
    console.log(stdout); 
}); 

ENV-test.js(chmod +x env-test.js実行する必要があります)

#!/usr/bin/env node 
console.log(new Date().toString()) 
+0

詳細な回答ありがとうございます! – swateek

関連する問題