nodeJS 中使用 http 创建server

╰半夏微凉° 2022-02-05 01:59 350阅读 0赞

项目源代码的 GitHub 路径如下:
https://github.com/slhuang520/study/tree/master/web/nodeJS/base/http.js

项目整体目录结构如下:
在这里插入图片描述

  1. var http = require("http");
  2. var fs = require("fs");
  3. var path = require("path");
  4. http.createServer(function (req, res) {
  5. //console.log(req);
  6. //console.log(res);
  7. // res.write("dddddddddd"); //直接写字符串内容到页面
  8. // res.end();//必须调用结束处理
  9. /*直接将页面读取到,然后写到页面上去 // var index = fs.readFileSync("./views/index.html", "utf8"); // __dirname:当前项目的路径:G:\web\nodeJS\base // __filename:当前js文件所在的路径:G:\web\nodeJS\base\http.js console.log(__dirname); console.log(__filename); var index = fs.readFileSync(path.join(__dirname, "views", "index.html"), "utf8"); res.write(index); res.end(); */
  10. //通过路由匹配不同的页面
  11. var myUrl = req.url;
  12. console.log(myUrl);
  13. if (myUrl === "/favicon.ico") {
  14. return;
  15. }
  16. var page = myUrl === "/" ? "index.html" : myUrl;
  17. var p = page;
  18. if (!fs.existsSync(path.join(__dirname, "views", p))) { //判断页面是否存在
  19. p = path.join("err", "404.html");
  20. }
  21. var html = fs.readFileSync(path.join(__dirname, "views", p), "utf8");
  22. res.write(html);
  23. res.end();
  24. }).listen("3000", /*"192.168.56.1",*/ function (err) {
  25. if (err) {
  26. console.log(err);
  27. console.log("开启server失败");
  28. return;
  29. }
  30. console.log("开启server成功,IP: 127.0.0.1,Post:3000");
  31. });

createServer(req, res)的回调函数中,两个参数分别代表 request, response。
request 中最常用的就是url,可以取得当前请求的路由。
response 可以输出返回的页面

比如:

  • res.write(“dddddddddd”); //直接写字符串内容到页面

注意,必须调用 res.end() 方法,以结束当前的 server 访问。

也可以直接使用 fs 读取到相应的 Html 页面,然后将读取的内容直接输出到页面上:

  1. var index = fs.readFileSync(path.join(__dirname, "views", "index.html"), "utf8");
  2. res.write(index);
  3. res.end();

server,listen(port, [ip], [,cb]) 参数中的IP是可以指定的,但只能指定为当前服务器的IP,指向其他的IP,外部将访问不到。
IP 若是不指定,将使用默认的 127.0.0.1

cb 回调函数中,默认返回的第一个参数,代表error对象,失败了,返回相应的error信息,成功返回null

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读