Я работаю в Ubuntu с входящим HTTP-запросом с этим URL: http://myIp:3000/v1/projects/list
И я получаю эту ошибку в терминале:
TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters
at new ClientRequest (_http_client.js:127:13)
at Object.request (https.js:300:10)
at Request.start (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:751:32)
at Request.end (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:1512:10)
at end (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:564:14)
at Immediate._onImmediate (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:578:7)
at processImmediate(timers.js:632:19)
После этой ошибки узел процесса исчезает из терминала (но все еще работает, и ответ API отправляется правильно), хотя я не вижу его работы ( изображение прилагается ). Таким образом, единственный способ взаимодействия с процессом узла - сделать что-то вроде ps aux | grep node
или ps T
и вручную убить процесс.
Предполагая, что ошибка означает, что я нашел соответствующий фрагмент кода, где появляется ошибка (request.js: 751: 32). Вот оно:
try {
self.req = self.httpModule.request(reqOptions)
} catch (err) {
self.emit('error', err)
return
}
Единственное решение, к которому я пришел, это прокомментировать self.emit('error', err)
строку кода, что, очевидно, далеко от лучших практик.
Дело в том, что тот же код работает на других компьютерах (Ubuntu, Windows) с одинаковыми версиями компонентов, и ошибки не возникает. Также конечные точки API, такие как http://myIp:3000/v1/community/list, отлично работают на всех устройствах.
Вот мои версии компонентов:
нпм - 6,5,0,
узел - 11.4.0,
запрос - 2.88.0,
Ubuntu - 16.04 (Windows - 10)
при необходимости некоторые фрагменты кода (создание Express Server и конкретный маршрут в ProjectsController):
const app = express();
app.use('/v1/projects/', ProjectsController);
const router = express.Router();
router.post('/list', function(req,res){
//logic
});