美文网首页饥人谷技术博客
自制一个Node.js 服务器

自制一个Node.js 服务器

作者: 飞天小猪_pig | 来源:发表于2021-08-26 22:16 被阅读0次
    1. 新建一个安全的目录
      cd ~/Desktop; mkdir node-demo; cd node-demo

    2. touch server.js

    3. 编辑 server.js,内容我已经上传到 GitHub

    4. 运行 node server或者node server.js,看到报错

    5. 根据报错提示调整你的命令

    6. 成功之后,这个 server 会保持运行,无法退出

      • 如果你想「中断」这个 server,按 Ctrl C即可(C 就是 Cancel 的意思)
      • 中断后你才能输入其他命令
      • 我建议你把这个 server 放在那里别动,新开一个 Bash 窗口,完成下面的教程,好了服务器完成。
    7. 只不过这个服务器目前只有一个功能,那就是打印出路径和查询字符串

    8、在新的 Bash 窗口运行curl http://localhost:你的指定的端口/xxx或者 curl http://127.0.0.1:你指定的端口/xxx。你会马上发现 server 打印出了路径:

    11.png

    9、这说明我们的 server 收到了我们用 curl 发出的请求

    10、由于 server 迟迟没有发出响应,所以 curl 就一直等在那里,无法退出(用 Ctrl C中断过程)

    让我们 server 发出响应
    1. 编辑 server.js

    2. 在中间我标注的区域添加两行代码

       response.write('Hi')
       response.end()
      
    3. 中断之前的 server,重新运行node server 8888

    4. curl http://127.0.0.1:8888/xxx,结果如下:

       Hi%
      

      这个 % 不是我们的内容,% 表示结尾。如果你看 % 不爽,就把 'Hi' 换成 'Hi\n'。

    5. 好了,响应添加成功

    6. 使用 curl -s -v -- "http://localhost:8888/xxx" 可以查看完整的请求和响应

    根据请求返回不同的响应
    1. 响应 /
    2. 响应 /xxx
    3. 响应 404
    4. 响应 /xxx.html
    5. 响应 /xxx.fang
    6. 再次强调,后缀是废话。文件内容是由 HTTP 头中的 Content-Type 保证的
    7. 响应 /xxx.css
    8. 响应 /xxx.js
    9. HTTP 路径不是文件路径!!!/xxx.html 不一定对应 xxx.html 文件

    这是完整的代码(不含中间的 if else):
    内容我已经上传到 GitHub

    相关文章

      网友评论

        本文标题:自制一个Node.js 服务器

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