リクエスト コールバック内で 2 番目のリクエストを実行できません。
request({
url: url,
headers: {
'auth-token': token
},
method: 'POST',
json: true,
body: data
}, (err, req, body) => {
if (err) {
console.log(err);
} else {
// Prosses data;
// This is the second request.
request({
url: url2,
headers; {
'auth-token': token
},
method: 'POST',
json: true,
body: data2
}, (err, req, body) => {
if (err) {
console.log(err);
return;
}
//Process data.
})
}
})
問題は、2 番目の要求が実行されていないことです。を開始するために nodemon を使用していますexpress server
がnodemon
、最初の要求のみが で受信されますexpress
。
electron
しかし、奇妙なことに、アプリを閉じずに 2 回目にメソッドを呼び出そうとすると、second request
が実行されます。nodemon
そして、2 番目のリクエストが最初に実行されることがわかります。
の出来上がりnodemon
はこんな感じ。
POST /path/to/url 200 6.181 ms - 641 //-> this is the first execution. then there is nothing follows.
// Then I call the method again using the app. And the result is this.
POST /path/to/second/url 200 9.645 ms - 21
POST /path/to/url 200 21.628 - 641
/path/to/second/url
はどこにもとどまっていないように見え、メソッドが 2 回目に呼び出された場合にサーバーに送信されます。
助けてください、ありがとう。
更新: 詳細情報を追加しました。
routes
すべての.js
ファイルをそこに保存できるフォルダがあります。次に、これを my app.js で使用してロードしています
let rs = fs.readdirSync(path.join(process.cwd(), '/routes/'));
rs.forEach((file) => {
if (file.indexOf('.js') !== -1) {
let fn = '/' + file.replace(/\.[^/.]+$/, '');
let pt = path.join(__dirname, './routes', fn);
let req = require(pt);
app.use(fn, req);
}
});
次に、ルートファイルに、このようなものがあります。
router.post('url', (req, res) => {
// here calling the controller.
// mostly just single line passing the request and result variable to the controller.
});
実際には、その要求は ipc コールバック内で呼び出されます。メニュー項目があり、click()
使用したばかりのイベントでbrowserWindow.getFocusedWindow().webContents.send('ipc-name')
、これがトリガーされます。
ipc.on('ipc-name', () => {
// The request is called here.
}