欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自己撸个后端进行交互

程序员文章站 2022-03-02 23:05:43
...

前端通过向后端发送请求获取响应。这次我自己写了一个简易版的服务器,模拟前后端数据的响应。

以下是服务器的代码:
var http = require('http')
var fs = require('fs')
var url = require('url')
var port = process.argv[2]

if(!port){
  console.log('请指定端口号好不啦?\nnode server.js 8888 这样不会吗?')
  process.exit(1)
}

var server = http.createServer(function(request, response){
  var parsedUrl = url.parse(request.url, true)
  var pathWithQuery = request.url 
  var queryString = ''
  if(pathWithQuery.indexOf('?') >= 0){ queryString = pathWithQuery.substring(pathWithQuery.indexOf('?')) }
  var path = parsedUrl.pathname
  var query = parsedUrl.query
  var method = request.method

  /******** 从这里开始看,上面不要看 ************/

  console.log('有个*发请求过来啦!路径(带查询参数)为:' + pathWithQuery)

  if(path === '/'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/html;charset=utf-8')
    response.write(`
    <!DOCTYPE html>
    <html>
      <head>
        <title>我是标题</title>
        <link rel="stylesheet" href="/x">
      </head>
      <body>
        hello world
      </body>
    
    </html>
    
    `)
    response.end()
  } else if(path === '/x'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/css;charset=utf-8')
    response.write(`body{color: red;}`)
    response.end()
  } else {
    response.statusCode = 404
    response.setHeader('Content-Type', 'text/html;charset=utf-8')
    response.write(`你输入的路径不存在对应的内容`)
    response.end()
  }

  /******** 代码结束,下面不要看 ************/
})

server.listen(port)
console.log('监听 ' + port + ' 成功\n请用在空中转体720度然后用电饭煲打开 http://localhost:' + port)

在当前文件所在的路径打开vscode,并输入node 文件名 端口号。在当前主机打开一个服务器。

然后再浏览器输入http://localhost:端口号/
返回的结果就是字体颜色为红色的 hello world。

代码逻辑

Content-Type 表示内容的类型/语法。
response.write()用于添加返回给浏览器的内容。
response.end()表示响应可以发送给用户。

相关标签: web服务器