- Development Mode
- File System
- Data Types and Attributes
- Instance and Class Methods
- Model Configuration
Stellar is equipped with file system functionality that allows clients to make requests for static files.
If a directory is requested instead of a file, Stellar will look for the file set in
api.config.general.directoryFileType (which by default is
index.html). If this file does not exist, a “not found” error will be returned.
You can use the
api.staticFile.get(connection, next) method in actions to retrieve a file (where the callback parameter has the form
next(connection, error, fileStream, mime, length)). The file being requested is defined in
connection.params.file. Note that
fileStream is a stream that can be piped to a client.
Note: In *NIX operating systems symbolic links to folders and files are allowed.
For Web clients, the
Expires headers are sent; the value of these is determined by the
api.config.general.flatFileCacheDuration configuration setting.
Content-Type header, the mime package is used to determine the file type.
An action which makes use of the
api.sendFile method can use
connection.params.file to find out which file was requested by the client. If the request falls under the
api.config.servers.web.urlPathForFiles route, the file will be looked up within the
You can also send the contents of a file to a client by calling
server.sendFile(connection, null, fileStream, 'text/html', length).
A client using a non-HTTP connection must use the
file parameter to request a file.
The file content is sent “raw,” which can be binary or contain line breaks. The file must be parsed according to the type of request made.
You can send files from within actions using the
connection.sendFile() method. Below is an example of a successful call:
// success case
The following example shows a failure:
// failure case
Note: You must set the property
action.toRender = falseafter sending a file to prevent Stellar from automatically generating a response, since the response has already been sent to the client.