Node.js 在主模块中执行http请求是否不好?
我想在每次服务器启动时将外部资源(文件、服务器等)中的数据同步到我的数据库中Node.js 在主模块中执行http请求是否不好?,node.js,express,Node.js,Express,我想在每次服务器启动时将外部资源(文件、服务器等)中的数据同步到我的数据库中 app.js const app = express(); app.use('/add', require('./addLayer')); ... (async() => { const external_resource = await axios.get('...'); // get data await axios.post('http://localhost:3000/add', e
app.js
const app = express();
app.use('/add', require('./addLayer'));
...
(async() => {
const external_resource = await axios.get('...'); // get data
await axios.post('http://localhost:3000/add', external_resource.data); // add it to db
});
const DBObject = require('../../models/DBObject')
const addNewLayer = async (req, res) => {
try {
const data = validateData(req.body)
await DBObject.create(data)
} catch (err) {
res.status(400).send(err)
}
}
addLayer.js
const app = express();
app.use('/add', require('./addLayer'));
...
(async() => {
const external_resource = await axios.get('...'); // get data
await axios.post('http://localhost:3000/add', external_resource.data); // add it to db
});
const DBObject = require('../../models/DBObject')
const addNewLayer = async (req, res) => {
try {
const data = validateData(req.body)
await DBObject.create(data)
} catch (err) {
res.status(400).send(err)
}
}
我不想在
/add
路由(包括数据验证)中重新编写代码,但出于某种原因,我发现在这里执行POST请求并不好。有更好的方法吗?这是什么意思呢?使用另一个文件来处理post请求将更加结构化,这将增加可读性和可重用性。我真的不知道,对于我(不是核心团队nodejs开发人员)来说,每次服务器启动时都需要执行post请求似乎有点奇怪。我想你建议的是一个更好的方法。是的,rolory,继续。如果你在任何时候还卡在那里,请告诉我。乐意帮忙:)