Возможно, у вас уже есть решение под рукой.Предполагая, что вы разрабатываете с использованием инфраструктуры MV, такой как response или angular, или просто с простым javascript, вы можете вызывать API с относительным маршрутом, если вы визуализируете интерфейсную часть, используя express static внутри того же самого express-приложения.
router.get('/api/example', function(req, res){
exampleFunction(req.query, function(err, doc){
if(err)
console.log(err);
response.status(200).json(doc);
})
});
Таким образом, внутри веб-приложения вы можете вызывать API, как показано ниже.
app.js (или любой другой файл, в котором запускается приложение)
app.use('/', express.static(__dirname + 'public')); // assuming static files are placed inside public folder
async function getAPI() {
try {
const res = await axios.post('/path/to/api'); // Doesn't require server remote url as it is relative
} catch (e) {
console.log(e);
}
}
Теперь внешний интерфейс может вызывать свои собственные API-интерфейсы следующим образом.
Дополнительный совет (Использование вызова обещания внутри маршрута)
...
const axios = require('axios'); // I am using axios. Use whatever you require
...
...
route.get('/path/to/api', (req, res) => {
try {
const res = await axios.get('/remote/api/);
res.send(res.data)
} catch (err) {
res.status(401).send(err.data);
}
});