在使用JavaScript API进行路由方面需要了解Node.js的帮助吗?

LinDan ChongWei

我了解Node.js中路由和使用http模块的基础知识。我理解下面所有的Node.js代码,但仅了解JavaScript API部分,以及如何使用它使路由代码更加简洁,这是我难以理解的。当我说“麻烦理解”时,我的意思是在理解语法以及如何使用route对象时遇到麻烦。

该代码来自我正在学习的一本电子书,因此请阅读下面的代码。

var http = require("http"); 
var url = require("url");

var route = {   
  routes : {},
  for: function(path, handler){    
    this.routes[path] = handler;  
  } 
};

route.for("/start", function(request, response){    
  response.writeHead(200, {"Content-Type": "text/plain"});    
  response.write("Hello");    response.end();  
});

  route.for("/finish", function(request, response){    
    response.writeHead(200, {"Content-Type": "text/plain"});    
    response.write("Goodbye");   
    response.end();  
  });

function onRequest(request, response) {  
  var pathname = url.parse(request.url).pathname;  
  console.log("Request for " + pathname + " received.");  
  if(typeof route.routes[pathname] ==='function'){    
    route.routes[pathname](request, response);  
  }else{    
    response.writeHead(404, {"Content-Type": "text/plain"});    
    response.end("404 Not Found");  
  } 
}

http.createServer(onRequest).listen(9999); 
console.log("Server has started.")

到目前为止,我的理解是:route.routes是一个空对象,route.for是一个函数。该函数有两个参数,function(path,handler)但我不了解该函数的一部分,即this.routes[path] = handler;

根据我的理解,this.routes[path]是一个空对象,因此代码设置handler为一个空对象吗?

除此之外,我绝对不知道function onRequest(request,response){};正在做什么。

Plase为我解释了整个代码,因为我发现在阅读电子书之前无法理解基础知识非常令人不安。

穆罕默德·乌默(Muhammad Umer)

您在第一行中包含的Http模块具有createserver函数,该函数将函数作为参数。在最后几行中,我们将“ onRequest”功能传递给它。每当在端口9999(也已定义)上接收到请求时,http模块都会在内部调用传递的函数。函数onRequest由两个参数调用,一个是“ request”,其中包含诸如标头和已接收请求的正文之类的数据。第二个参数是响应对象,它是返回的内容。它具有简化此功能的功能,如writeHead可以写入标头,.end可以指示http模块最终确定响应。

onRequest函数可以对请求执行任何所需的操作,并发送其想要发送回的任何响应。

在这里,它使用nodejs固有的url模块来解析url并提取路径名,该路径名是first /之后的所有内容,因此提取了www.mydomain.com/thispart/andthis...etc。

然后完成在路由内的对象查找。如果存在具有等于此路径名的字符串的键的对象,它将返回该函数的值,如果不存在,则表达式的计算结果为false并将运行404 part。匹配函数将通过onRequest在参数中获得的响应和请求对象进行调用。

即使对象不存在,也可以在Javascript中设置对象的属性。

var a = {n:1};
a.x = "exists";
console.log (a.x); //exists

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我需要了解javascript ||的帮助。它是否是逻辑“或”

来自分类Dev

使用Express和Node.js进行路由时出现404错误

来自分类Dev

Node.js-在部署到Google Cloud之前,我需要了解我的资源使用情况

来自分类Dev

需要帮助来了解Socket.io(node.js)中的以下jQuery代码吗?

来自分类Dev

Ember.js使用通配符路径进行路由

来自分类Dev

需要在Node.js中使用Kurento复合媒体元素进行音频会议的帮助

来自分类Dev

我可以在codeigniter路由内使用帮助程序吗?

来自分类Dev

我可以在codeigniter路由内使用帮助程序吗?

来自分类Dev

我想使用 Node js 在 Pagerduty 中创建一个用户。但我做不到。有人可以帮助我吗?

来自分类Dev

需要帮助使用Next.js网站的javascript过滤Contentful上的帖子

来自分类Dev

在使用 JS 创建设备方向的视觉表示方面需要一些帮助

来自分类Dev

在node.js中的图像处理方面需要帮助

来自分类Dev

需要帮助来了解此命令吗?

来自分类Dev

需要了解Javascript对象引用

来自分类Dev

JavaScript :!需要了解其功能(非())

来自分类Dev

需要了解Javascript函数提升示例

来自分类Dev

有Javascript帮助框架吗?

来自分类Dev

使用Express API和ReactJS SPA进行路由

来自分类Dev

在使用R清理数据方面需要帮助

来自分类Dev

在使用 Charindex 的 TSQL 方面需要帮助

来自分类Dev

需要少量帮助来了解使用剔除js的下拉列表人群

来自分类Dev

使用“if”语句进行路由

来自分类Dev

需要使用2个.js文件的帮助

来自分类Dev

需要帮助,请使用表格和角度js

来自分类Dev

需要帮助使用Meteor.js加载Dat-GUI

来自分类Dev

在使用 XSLT 对数据进行分组和转置方面需要帮助

来自分类Dev

我需要了解RxJx订阅语法的帮助

来自分类Dev

安全代码吗?(需要帮助)

来自分类Dev

需要帮助来了解Javascript关闭

Related 相关文章

  1. 1

    我需要了解javascript ||的帮助。它是否是逻辑“或”

  2. 2

    使用Express和Node.js进行路由时出现404错误

  3. 3

    Node.js-在部署到Google Cloud之前,我需要了解我的资源使用情况

  4. 4

    需要帮助来了解Socket.io(node.js)中的以下jQuery代码吗?

  5. 5

    Ember.js使用通配符路径进行路由

  6. 6

    需要在Node.js中使用Kurento复合媒体元素进行音频会议的帮助

  7. 7

    我可以在codeigniter路由内使用帮助程序吗?

  8. 8

    我可以在codeigniter路由内使用帮助程序吗?

  9. 9

    我想使用 Node js 在 Pagerduty 中创建一个用户。但我做不到。有人可以帮助我吗?

  10. 10

    需要帮助使用Next.js网站的javascript过滤Contentful上的帖子

  11. 11

    在使用 JS 创建设备方向的视觉表示方面需要一些帮助

  12. 12

    在node.js中的图像处理方面需要帮助

  13. 13

    需要帮助来了解此命令吗?

  14. 14

    需要了解Javascript对象引用

  15. 15

    JavaScript :!需要了解其功能(非())

  16. 16

    需要了解Javascript函数提升示例

  17. 17

    有Javascript帮助框架吗?

  18. 18

    使用Express API和ReactJS SPA进行路由

  19. 19

    在使用R清理数据方面需要帮助

  20. 20

    在使用 Charindex 的 TSQL 方面需要帮助

  21. 21

    需要少量帮助来了解使用剔除js的下拉列表人群

  22. 22

    使用“if”语句进行路由

  23. 23

    需要使用2个.js文件的帮助

  24. 24

    需要帮助,请使用表格和角度js

  25. 25

    需要帮助使用Meteor.js加载Dat-GUI

  26. 26

    在使用 XSLT 对数据进行分组和转置方面需要帮助

  27. 27

    我需要了解RxJx订阅语法的帮助

  28. 28

    安全代码吗?(需要帮助)

  29. 29

    需要帮助来了解Javascript关闭

热门标签

归档