美文网首页
Node.js搭建服务器

Node.js搭建服务器

作者: 楼水流云 | 来源:发表于2019-10-07 20:59 被阅读0次

var http = require("http") //加载一个模块

示例创建服务器
var server = http.createServer(function(req,res){ req[请求]附带的信息 res是我们[响应]返回给浏览器的信息

设置响应头 数据用html返回 plain是用字符串返回 用utf-8解码 告诉浏览器后面发的"hello world"数据需要去如何解析
res.setHeader("Content-Type","text/html; charset = utf-8") 

响应头 status code: 200 OK 当前请求的状态  一个约定 约定200是成功的也可以换成其他
res.writeHead(200,"OK")
 
响应体 发给浏览器什么
res.write('<html><head><meta charset='gbk'></head>')
res.write('<body>')
res.write('<h1>你好</h1>')
res.write('body')
res.write('html')

结束
res.end()

})

server.listen(8080) //启动服务器 监听8080这个端口

res.end(123456) end里直接写内容= res.write + res.end

启动服务器
cd到文件当前目录
node index.js 启动文件
localhost:8080
ctrl+c 退出服务器
这里cosole.log()的结果展示在终端

响应头[Response Headers]是设置基本设置信息
响应体是看响应体的设置 对发送给浏览器的数据作什么样的解析 一个页面的查看源代码
ajax是请求头 这里是服务器给你的响应头

流程
在浏览器输入localhost:9000的时候 会有一个请求
有一个 请求头 浏览器自动加的
请求到了服务器之后 会进入我写的这个函数
可以根据用户请求的url 执行不同的逻辑 找到不同的逻辑后 返回不同的数据
发了一个响应res.write('hello world') res.write是响应体

做一个静态服务器
使用模块
var http = require('http') //创建服务器的
var path = require('path') //处理路径url windows mac 的路径可能是不一样的 用来处理
var fs = require('fs') //用来读写文件
var url = require('url') //可以自动解析url得到一些信息

服务器处理
function staticRoot(staticPath,req,res){
console.log(staticPath) 获得服务器读取到的绝对路径
console.log(req.url) 获得请求的文件路径

var pathObj = url.parse(req.url,true)  获得一堆数据 所需要的是pathname:'/index.html'

这里if 是设置localhost:8080/index.html 如果localhost:8080 默认打开index.html
//这里通过pathObj.pathname获得了完整路径
if(pathObj).pathname === '/'{
    pathObj.pathname += 'index.html'
}

var filePath = path.join(staticPath,pathObj.pathname)  得到所请求文件的具体的路径

读取filePath得到的具体路径 使用binary二进制的方法 来处理错误和成功的方法
fs.readFile(filePath,'binary',function(err,fileContent){
    if(err){
            console.log('404')
            res.writeHead(404,'not found')
            res.end(<h1>404 Not Found</h1>) 
        }else{
            console.log('OK')
            res.writeHead(200.'OK')
            res.write(fileContent,'binary')
            res.end()
        }
})

}

服务器本身
var server = http.createServer(function(req.res){
staticRoot(path.join(__dirname,'static'),req,res) __dirname代表当前文件 static加载内容的总文件夹名 /当前文件夹/static
})

server.listen(8080)

相关文章

网友评论

      本文标题:Node.js搭建服务器

      本文链接:https://www.haomeiwen.com/subject/hbqcpctx.html