Whenever i ran this node server on Port "8000"
const http=require('https')
const PORT=8000
const server=http.createServer()
server.on('request',(req,res)=>{
if (req.url==='friend'){
res.writeHead(200,{
'Content-Type':'text/plain',
})
res.end(JSON.stringify({
id:1,
name:'Sir Issac Newton',
}))
}
if (req.url==='foe'){
res.writeHead(200,{
'Content-Type':'text/plain',
})
res.end('The Enemy is Ego Bro')
}
})
server.listen(PORT,()=>{
console.log(`the respnse is exectued at ${PORT}`)
})
i get an error on the Borwser which says:
localhost didn’t send any data. ERR_EMPTY_RESPONSE
i try to change ports but still it shows this error.Please what should i do and explain me what this error is. Thank you!
CodePudding user response:
This code has 3 problems.
You should change
const http=require('https')toconst http=require('http'). If you want to use HTTPS please see the nodejs document for how to configure the https serverIn nodejs HTTP request URL start with
/and your condition statement does not workCuz request URL does not match with the condition statement server does not respond any things and this error happens.
You should change code like that:
const http=require('http')
const PORT=8000
const server=http.createServer()
server.on('request',(req,res)=>{
if (req.url==='/friend'){
res.writeHead(200,{
'Content-Type':'text/plain',
});
res.end(JSON.stringify({
id:1,
name:'Sir Issac Newton',
}));
return;
}
if (req.url==='/foe'){
res.writeHead(200,{
'Content-Type':'text/plain',
});
res.end('The Enemy is Ego Bro');
return;
}
res.writeHead(400,{
'Content-Type':'text/plain',
});
res.end('URL not match');
})
server.listen(PORT,()=>{
console.log(`the respnse is exectued at ${PORT}`)
})
