Home  >  Article  >  Web Front-end  >  Overview of nodejs request routing_node.js

Overview of nodejs request routing_node.js

WBOY
WBOYOriginal
2016-05-16 16:42:241622browse

Generally speaking, the server should respond differently to different URL requests. We need to provide the route with the requested URL and other required GET and POST parameters, and then the route needs to execute the corresponding code based on these data. All the data we need will be contained in the request object, which is passed as the first parameter of the onRequest() callback function. In order to parse this data, additional modules need to be called, namely the url and querystring modules.

URL:This
module has utilities for URL resolution and parsing. Call require('url') to
use it.

Parsed URL objects have some or all of the following fields, depending on whether or not they exist in the URL string. Any parts that are not in the URL string will not be in the parsed object. Examples are shown for the URL

'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

href: The full URL that was originally parsed. Both the protocol and host are lowercased.
Example: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

protocol: The request protocol, lowercased.
Example: 'http:'

host: The full lowercased host portion of the URL, including port information.
Example: 'host.com:8080'

auth: The authentication information portion of a URL.
Example: 'user:pass'

hostname: Just the lowercased hostname portion of the host.
Example: 'host.com'

port: The port number portion of the host.
Example: '8080'

pathname: The path section of the URL, that comes after the host and before the query, including the initial slash if present.
Example: '/p/a/t/h'

search: The 'query string' portion of the URL, including the leading question mark.
Example: '?query=string'

path: Concatenation of pathname and search.
Example: '/p/a/t/h?query=string'

query: Either the 'params' portion of the query string, or a querystring-parsed object.
Example: 'query=string' or {'query':'string'}

hash: The 'fragment' portion of the URL including the pound-sign.
Example: '#hash'

We will add the routing module loosely using dependency injection. The function that is the routing target is called a request handler. The implementation of the request handling function needs to create a module called requestHandlers. Of course, it can also be named something else. And for each request handler, add a placeholder function, and then export these functions as module methods, so that the request handler and the routing module can be connected, so that the routing can be followed.

In particular, a series of request handlers need to be passed through an object, and this object needs to be injected into the route() function in a loosely coupled manner.

We can get the request processing function from the passed object in the same way as getting elements from the associative array, so we have a simple and smooth expression like handle[pathname]();. The code looks like this:

var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn