У меня следующая ситуация: узел с экспресс-запуском на моей локальной машине и удаленный linux-box в частном адресном пространстве моей сети.
Вот пример компактного index.js с использованием nodejs & express:
const express = require('express');
const app = express();
app.get('/', (req,res) => {
res.send('RESTful Demo..');
});
app.get('/api/read', (req,res) => {
console.log('test 123..');
res.send([1, 2, 3]);
});
// Array to simulate some db-entries
const jsObject = [
{ pk: 1, value: 'data1'},
{ pk: 2, value: 'data2'},
{ pk: 3, value: 'data3'}
];
app.get('/api/read/:pk', (req,res) => {
var pk = req.params.pk;
console.log(pk);
let myMatchedObject = jsObject.find(c => c.pk === parseInt(req.params.pk));
if (!myMatchedObject) res.status(404).send('The given Primaray Key was not found..'); // 404
res.send(myMatchedObject);
});
// PORT envar
const port = process.env.PORT || 3000;
// Listening-process
app.listen(port, () => console.log(`Listening on Port ${port}..`));
Я успешно попробовал его через браузер локально и удаленно, но я попытался свернуться с удаленного Linux-бокса в моем личном адресном пространстве моей сети, но я не смог вызвать API.
Я пытался (с включением прокси-туннелей) curl -o test.txt -p http://192.168.1.152:3000/api/read безуспешно ..
Затем я попробовал несколько успешных тестов API jsonplaceholder с curl https://jsonplaceholder.typicode.com/users
Имея это в виду, я клонировал репозиторий и попробовал его на своей локальной машине - снова без ответа от curl.
Какую фундаментальную мысль я упускаю?