请问使用node.js创建服务器设置通信状态码为何没有起作用?

心悦琴
  • 67

image.png
image.png
如何使用node.js创建http连接,重设通信状态码信息,为何运行起来时并不起作用?
image.png
控制台并未出现该有的信息,请赐教,不胜感激。

// 版本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')
})


回复
阅读 330
1 个回答

那段nodejs代码是在服务器端运行的,所以在浏览器的控制台,是不会输出nodejs文件里console.log的任何东西的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏