Muranx
@Muranx
кто понял this тот в цирке не смеётся

Можно ли отследить работу Node.js подобно отладке нативного js в браузере?

Здравствуйте!

let http = require('http'),
	serv = http.createServer();

serv.on('request', (req, res)=>{
	if(req.url === '/script.js'){
		res.writeHead(200, {'Content-Type' : 'text/javascript'}); // ( 2 )
		res.end(`
				alert('holla from script.js');
			`);
	};
	res.writeHead(200, {'Content-Type' : 'text/html'});
	res.end(`
				<!DOCTYPE html>
				<html lang="en">
				<head>
					<meta charset="UTF-8">
					<meta name="viewport" content="width=device-width, initial-scale=1.0">
					<title>Document</title>
				</head>
				<body>
				<script src="script.js"></script> // ( 1 )
				</body>
				</html>
		`);
}).listen(3000, ()=>{
	console.log('server is already running');
});


Вопрос 1. Где сохраняются эти документы. которые я динамически создаю с помощью Node.js кода, а именно эта html страничка, и скрипт script.js , ну т.е. я же их нигде не создаю физически, не считываю инфу с диска, а просто динамически создаю сервер, в котором прописываю содержимое этих "файлов"?
Вопрос 2. Получается в данном коде срабатывают два запроса (не считая фавикон), это на html содержимое и на js содержимое стриницы?
Вопрос 3. Я не понимаю вот этого прикола, когда я создаю скрипт и прикрепляю его к html коду и при этом под комментарием ( 2 ) я сам прописываю в заголовке ответа его статус? Т.е. я пробовал прописать 404, и офк скрипт не подключился, зачем этот заголовок нужен? Он имеет какой-то практический вес в данном примере? Зачем мне самому себе рыть яму, и указывать к примеру тот-же 404, когда проще всегда указывать 200?

Спасибо за внимание, если вы хотите мне кинуть ссыль на доку, хм, из доки я все этим методы и взял, перечитав эти методы уже ниодин раз, хотелось бы более человеческого ответа на вопросы, из вашего опыта!

Самое главное забыл, а можно ли где-нибудь отследить подобно нативному дебагеру работу node.js я только блин привык к обычному дебагеру, так удобно, видишь что когда и как срабатывает, прям до самых мелочей, а тут node.js всё происходит как-будто в слепую (по крайней мере пока я учусь)
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
1) нигде не сохраняются, объект Response (res.send...) это поток
The ServerResponse object represents the writable stream back to the client.

https://www.w3schools.com/nodejs/obj_http_serverre...
то есть просто байтики пересылаются браузеру в ответ на запрос

2) так и есть, можно посмотреть в консоли например
serv.on('request', (req, res)=> { 
  console.log('REQUEST:', req.url)
   .....


3) ну в заголовки ответа нужно писать статус, просто как должное, если уверен, что всё всегда сможешь отдать от сервера без ошибок, то конечно и 200 можно везде, но
Зачем мне самому себе рыть яму, и указывать к примеру тот-же 404, когда проще всегда указывать 200?

но если кто-то перепишет браузерную часть скрипта, и решит запрашивать script2.js, то лучше возвращать статус 200 или всё же 404?

--
Спасибо за внимание, если вы хотите мне кинуть ссыль на доку, хм, из доки я все этим методы и взял, перечитав эти методы уже ниодин раз, хотелось бы более человеческого ответа на вопросы, из вашего опыта!

это непопулярное мнение, но по-моему проще сначала начать делать что-то работающее на express.js, где методы модуля http обернуты в более простые функции, и потом уже по обстоятельствам копать дальше
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы