Поток выполнения при попадании запроса в узел сервера js - PullRequest
0 голосов
/ 17 мая 2018

Я новичок в Nodejs, и здесь у меня есть фрагмент кода в app.js:

var config = require('./config')
    , express = require('express')
    , db = require('./app/lib/db')
    , utils = require('./app/lib/utils')(config, db)    
var app = express() 
    http = require('http').createServer(app)
       require('./config/express')(app, config)
        require('./config/routes')(app, utils, model_list)
        http.listen(config.port, function () {
            console.log("API running at http://" + config.hostname)
        })

А список роутеров api настраивается в файле config/routes, например:

app.get('/api/' + name + '/:limit([0-9]+)/:page([0-9]+)', ctrls[name].list); // get list with page
app.get('/api/' + name, ctrls[name].list); // get list with default page = 1
app.post('/api/' + name + '/search', ctrls[name].search); // search
app.get('/api/' + name + '/:id([0-9a-f]+)', ctrls[name].get); // get by id

После того, как сервер создан и начинает прослушивать порт конфигурации, каков поток выполнения нового запроса, когда он попадает на сервер? Как сервер может перехватить запрос в app.js и затем перейти к routes.js, чтобы направить его в функцию для его обработки?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

вы должны проверить анатомию http в nodejs. https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/

0 голосов
/ 17 мая 2018

Не перемещается в routes.js ... routes.js требуется внутри app.js и применяет маршруты к объекту app, который является сервером экспресс-доставки.Это делается один раз, до того, как сервер начинает прослушивать порт.

Как экспресс-маршрутизация запроса при его получении полностью выполняется внутренне.Обычно он проверяет метод запроса (GET, POST и т. Д.), Затем проверяет запрошенный URI и пытается сопоставить маршрут, если маршрут соответствует, функция выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...