的Javascript新手在這裏路由示例代碼..獲取網頁無法使用的錯誤嘗試運行與節點
我已經嘗試運行routes文檔中給出的示例代碼時。
代碼:
var Router = require('routes');
var router = new Router();
router.addRoute('/admin/*?', auth);
router.addRoute('/admin/users', adminUsers);
http.createServer(function (req, res) {
var path = url.parse(req.url).pathname;
var match = router.match(path);
match.fn(req, res, match);
}).listen(1337)
// authenticate the user and pass them on to
// the next route, or respond with 403.
function auth(req, res, match) {
if (checkUser(req)) {
match = match.next();
if (match) match.fn(req, res, match);
return;
}
res.statusCode = 403;
res.end()
}
// render the admin.users page
function adminUsers(req, res, match) {
// send user list
res.statusCode = 200;
res.end();
}
我可以通過node app.js
運行這個和它啓動的罰款。然而,當我打http://localhost:1337/admin
我得到以下錯誤:
TypeError: Cannot call method 'fn' of undefined
爲了確保我沒有做錯事的服務器,我重新回範例節點應用:
http.createServer(function (req, res) {
.write("Hello world!");
res.end();
}).listen(1337)
這運行良好。我可以打localhost
,看到它打印出你好世界。那麼當我運行routes
示例代碼時,爲什麼會出現類型錯誤?
嗯,也許是因爲'/ admin'不匹配'/ admin/*',因此不符合任何規則?你是否試過訪問'/ admin /'而不是'/ admin'? – Passerby 2014-09-13 06:17:13
@Passerby是的。 '/ admin','/ admin /','/ admin/adsf'。所有結果都有相同的錯誤。 – user3308774 2014-09-13 06:25:33