本篇主要介绍如何借助node的http模块和fs模块进行本地服务搭建

创建目录

在A,B,C,D,E盘随便一个你喜欢的位置创建一个文件夹,这个文件夹就是我们项目的根目录(下同)

创建index.js

在根目录下创建index.js文件,用来发送请求

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>testServer</title>
  8. <script src="./jquery.min.js"></script> //引入jquery
  9. </head>
  10. <body>
  11. 用户名:<span id="userName"></span>
  12. <script>
  13. $.ajax({
  14. url: 'http://localhost:3000/api/user', //之前使用koa2写好的API
  15. type: 'POST',
  16. dataType: 'json',
  17. data: {
  18. user_id: 6 //查询用户ID为6的用户
  19. },
  20. success: function (res) {
  21. $('#userName').html(res.data.user_name);
  22. }
  23. })
  24. </script>
  25. </body>
  26. </html>

创建server.js

在根目录下创建server.js文件,用来创建服务器及异步读取文件

  1. var http = require('http'); //引入http模块
  2. var fs = require('fs'); //引入文件读取模块
  3. //需要访问的文件的存放目录
  4. var documentRoot = 'D:/dev/todolist_fe/server';
  5. /**
  6. * 创建 http 服务器
  7. * @param http.createServer([options][, requestlistener])
  8. * @returns 新建的 http.Server 实例
  9. */
  10. http.createServer(function (req, res) {
  11. var url = req.url;
  12. //客户端输入的url,例如如果输入localhost:8888/index.html
  13. //那么这里的url == /index.html
  14. var file = documentRoot + url;
  15. /**
  16. * 异步读取文件
  17. * @param fs.readFile(filename, [encoding], [callback(err,data)])
  18. */
  19. fs.readFile(file, function (err, data) {
  20. /*
  21. filename 文件路径
  22. options option对象,包含 encoding,编码格式,该项是可选的。
  23. callback 回调,传递2个参数 异常err 和 文件内容data
  24. */
  25. if (err) {
  26. res.writeHeader(404, {
  27. 'content-type': 'text/html;charset="utf-8"'
  28. });
  29. res.write('<h1>404错误</h1><p>你要找的页面不存在</p>');
  30. res.end();
  31. } else {
  32. res.writeHeader(200, {
  33. 'content-type': 'text/html;charset="utf-8"'
  34. });
  35. res.write(data); //将index.html显示在客户端
  36. res.end();
  37. }
  38. });
  39. }).listen(8888); //设置端口号
  40. console.log('服务器开启成功');

访问http://localhost:8888/index.html

header.pngdata.png
成功拿到数据

推荐

http.createServer
Node http createServer过程源码解读
fs.readFile