请问使用node.js创建服务器设置通信状态码为何没有起作用?
如何使用node.js创建http连接,重设通信状态码信息,为何运行起来时并不起作用?
控制台并未出现该有的信息,请赐教,不胜感激。
// 版本1
const http = require('http')
const fs = require('fs')
const server = http.createServer((request, response) => {
// response.end('hello ...')
const { url, method ,headers} = request
if (url === '/' && method === 'GET'){
// 静态页面服务
fs.readFile('index.html',(err,data) => {
if(err){
console.log("500")
response.writeHead(500,{
// writeHead会把东西全读到内存去,内存占用大,在html处还不显著,但是在图片处使用的吧话就会消耗大量内存
'Content-Type':'text/plain;charset=utf-8'
})
response.end('500 服务器挂了')
return
}
response.statusCode = 200
response.setHeader('Content-Type','text/html')
response.end(data)
console.log("200")
})
}else if(url === '/users' && method === 'GET'){
// Ajax服务
response.writeHead(200,{
'Content-Type': 'application/json'
})
response.end(JSON.stringify({
name : 'qyx'
}))
}else if(method === 'GET' && headers.accept.indexOf('image/*') !== -1){
// 图片文件服务
fs.createReadStream('./'+url).pipe(response)
}else {
console.log("404")
response.statusCode=404
response.setHeader('Content-Type','text/plain;charset=utf-8')
reponse.end('404没这玩意')
}
})
// 监听端口
server.listen(8888,()=>{
console.log('Server at 8888')
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那段
nodejs
代码是在服务器端运行的,所以在浏览器的控制台,是不会输出nodejs
文件里console.log
的任何东西的。