【发布时间】:2020-10-18 18:09:28
【问题描述】:
我在 Node.js 中创建了一个带有单一路由的小型 Express 服务器。当 HTTP 请求用于 GET '/get-jobs' 时,我想发出一个事件,将所述事件传达给另一个文件,该文件将 axios 请求发送到 console.log 我指定的页面 URL 上的数据。但是,由于某种原因,我的 EventEmitter 没有正确监听 axios 文件。我该如何解决这个问题?
这是我的切入点:
import express from 'express';
import dotenv from 'dotenv';
import EventEmitter from './EventEmitter.js';
const app = express();
dotenv.config({ path: './config.env' });
app.use(express.json());
app.get('/get-jobs', (req, res) => {
console.log('Route was hit');
EventEmitter.emit('getJobs', req);
});
app.listen(process.env.PORT, () => {
console.log(`Listening on port ${process.env.PORT}...`);
});
这是我当前未监听的 axios 作业文件:
import axios from 'axios';
import EventEmitter from './EventEmitter.js';
EventEmitter.on('getJobs', () => {
await main();
console.log('Test');
});
async function main() {
try {
const { data } = await axios.get(
'https://www.monster.com/jobs/search/?q=javascript&where=Saint-Louis__2C-MO&stpage=1&page=4'
);
console.log(data);
} catch (err) {
console.log(err);
}
}
这是我的事件发射器文件:
import EventEmitter from 'events';
export default new EventEmitter();
【问题讨论】: