我该怎么理解这段代码? Node.js的

时间:2017-02-04 20:51:04

标签: node.js

我目前正在研究MEAN堆栈是一名网络程序员,我被困在这段代码中,我根本无法猜测。有人可以告诉我这意味着什么以及它来自何处?

http.createServer(function(req, res){
  var _url;

  ....

  if(_url = /^\/employees$/i.exec(req.url)){
    res.writeHead(200);
    return res.end('employee list');
  }else if(_url = /^\/employees\/(\d+)$/i.exec(req.url)){
    res.writeHead(200);
    return res.end('a single employee');
  }else{
    res.writeHead(200);
    res.end('static file maybe');
  }
});

所以,我想知道的是以下这些部分:

  • _url = / ^ / employees $ / i.exec(req.url)
  • _url = / ^ / employees /(\ d +)$ / i.exec(req.url)

2 个答案:

答案 0 :(得分:0)

^\/employees$

^ - Begins with
\/ - Escaped '/'. (i.e. begins with '/')
employees - contains employees.
$ - ends with (i.e. finally, it'll only match '/employees')

^\/employees\/(\d+)$

这里,(\ d +)是一个组:

\d - matches digits (0-9)

+ - one or more previous token (i.e. matches 012345 or 1234 or 23, etc. but not blank or string).

答案 1 :(得分:0)

/^\/employees$/i是一个regex,用于检查请求网址是否包含字符串/employees,后面没有任何内容

如果找到匹配,则_url将是一个字符串(一个真值),否则它将为null(一个假值)

_url = /^/employees/(\d+)$/i.exec(req.url)正在寻找/employees/NUMBER

^表示字符串

的开头

\/正在逃避/

employees是一个文字字符串

\d表示任何数字

$表示字符串结尾

i表示不区分大小写(EmPlOyeeSemployees都匹配相同)