語境
我在learnyounode這是什麼片段在HTTP JSON API服務器鍛鍊; Tibial在learnyounode
npm install -g learnyounode
稱爲HTTP JSON API服務器遇到鍛鍊; Tibial。 目標的鍛鍊; Tibial的:
收件,供應JSON數據當它接收一個GET請求到路徑「/ API /分析時」的HTTP服務器。期望請求包含一個帶有'iso'鍵和一個ISO格式時間值的 查詢字符串。
例如:
/api/parsetime?iso=2013-08-10T12:10:15.474Z
我沒能解決這個問題,我認爲這是由於缺乏一些特定的API的知識,於是我擡起頭來的解決方案,並發現這個(這順便說一句正常工作):
var http = require('http');
var url = require('url');
function parsetime (time) {
return {
hour: time.getHours(),
minute: time.getMinutes(),
second: time.getSeconds()
};
}
function unixtime (time) {
return { unixtime : time.getTime() };
}
var server = http.createServer(function (req, res) {
var parsedUrl = url.parse(req.url, true);
var time = new Date(parsedUrl.query.iso);
var result;
if (/^\/api\/parsetime/.test(req.url))
result = parsetime(time);
else if (/^\/api\/unixtime/.test(req.url))
result = unixtime(time);
if (result) {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify(result));
} else {
res.writeHead(404);
res.end();
}
})
server.listen(Number(process.argv[2]));
實際問題
我看着這段代碼並凍結了。
if (/^\/api\/parsetime/.test(req.url))
result = parsetime(time);
else if (/^\/api\/unixtime/.test(req.url))
result = unixtime(time);
任何人都可以解釋/^\/api\/parsetime/.test(req.url)
究竟做了什麼嗎?起初它看起來像某種正則表達式,但我從來沒有見過RegExp可以調用方法。我想這是識別URL路徑的一種形式,但猜測在行業中並不值得。
謝謝大家提前!
是的,它是用於識別所述URL的路徑[RegExp.test()](https://developer.mozilla.org/en-美國/文檔/網絡/的JavaScript /參考/ Global_Objects /正則表達式/測試)。 – simo