我无法在请求回调中执行第二个请求。
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.
})
}
})
问题是第二个请求没有执行。我正在使用 nodemon 启动express server
,但nodemon
只有第一个请求是在express
.
但奇怪的是,当我第二次尝试在不关闭electron
应用程序的情况下调用该方法时,second request
执行了。我可以看到nodemon
第二个请求首先执行。
的输出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
如果第二次调用该方法,它看起来就像是停留在某个地方并且只是发送到服务器。
请帮忙,谢谢。
更新:添加了更多信息。
我有一个文件夹,routes
所有.js
文件都可以保存在那里。然后我在我的 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.
}