Веб-сервер на основе выражений - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь создать веб-сервер, который вызывает функции на основе совпадений регулярных выражений.Ниже приведен пример.Однако у меня возникают проблемы с вызовом соответствующей функции.Этот код приводит к сбою node.js, говоря, что объектный метод не является функцией.Что я делаю не так?

http = require "http"

http.createServer( (req, res) ->
    res.writeHead 200, {"Content-Type": "text/plain"}
    res.end handle req
).listen 8080

console.log "Server running at http://127.0.0.1:8080/"

paths = [
    method: home, expression: "/"
    method: user, expression: "/user"
]

home = (req) ->
    return "This is the home"

user = (req) ->
    return "This is a user page"

handle = (req) ->
    for path in paths
        if req.url.match path.expression
            console.log path.expression
            return path.method req

1 Ответ

2 голосов
/ 02 февраля 2011
  • home / user не определены во время создания paths.
  • paths не будет массивом объектов таким образом. (См. FAQ .)

Попробуйте:

http = require "http"

http.createServer (req, res) ->
    res.writeHead 200, "Content-Type": "text/plain"
    res.end handle req
.listen 8080

console.log "Server running at http://127.0.0.1:8080/"

home = (req) -> "This is the home"
user = (req) -> "This is a user page"

paths = [
    {} = method: home, expression: "/"
    {} = method: user, expression: "/user"
]

handle = (req) ->
    for path in paths
        if req.url is path.expression
            console.log path.expression
            return path.method req
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...