Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

dssrv-engine

adamhalasz18MIT0.10.6

A fast and modular node.js server framework. Good for making and hosting fast & scalable apps and apis IoT ( Internet of Things ).

diet, dspeed, web, framework, http, server, https, api, routing, router, mail server, smtp server, page routing, url parse, middleware, connect, plugins, modules, querystring, rest, restful, web server, domains, subdomains, vhost, hosting, virtual hosts, request, response, dietjs, diet.js

readme

DIREKTSPEED Server Logo

Build Status NPM Downloads Coveralls

DIREKTSPEED Server is a tiny, fast and modular node.js web framework. Good for making fast & scalable apps and apis.

var server = require('dssrv-engine')

var app = server()
app.listen(8000)
app.get('/', function($){
    $.end('hello world')
})

Features

Install

npm install diet

Website & Community

Tutorials

API

Resources

License

(The MIT License)

Copyright (c) 2014 Halász Ádám

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

changelog

v0.10.5 ** - 2016 April 29

  • Error.stack not always present on Error in controllers/router.js by @demarius
  • initialized is not constant in index.js (es6, strict mode fix)
  • Replaced Native Object.observe with object.observe module to support observe in Node >= v6.0.0

v0.10.4 ** - 2016 March 10

  • Check if path contains query in Signal#redirect by @demarius

v0.10.3 - v0.10.4 ** - 2016 March 3

  • AB Load Testing Comparison between Vanilla Node, DIREKTSPEED Server.js and Express.js

v0.10.2 ** - 2016 Feburary 17

  • add second argument isLast to $.end(yourData, isLast), $.json(yourData, isLast), $.success(yourData, isLast) and $.failure(yourData, isLast). Setting isLast to true will stop the execution of the middleware chain completely
      // usage
      $.end('hello world', true)

v0.10.1 ** - 2016 January 25

  • Check existence of app.routes and routes in hosts.js and iterator.js

v0.10.0 ** - 2016 January 24 - Major Release

  • Drop support for Node versions below v4.2.4
  • Middleware renamed to Controller
  • Introducing ES6 Generator Controllers (yield and *)
  • Introducing app.controller function method registering
    • can be called as a normal function
    • creates a thunk around the controller for generators when called with yield
  • Introducing app.protocol(name, handler)
  • Introducing Server Event Handlers
    • server.on(event, handler)
    • server.off(event, handler)
    • server.one(event, handler)
    • server.onAll(event, handler)
    • server.many(event, handler)
    • server.emit(event, handler)
  • Introducing App Event Handlers
    • app.on(event, handler)
    • app.off(event, handler)
    • app.one(event, handler)
    • app.onAll(event, handler)
    • app.many(event, handler)
    • app.emit(event, handler)
  • Introducing Server Events
    • init
    • create (new app)
  • Introducing App Events
    • listen
    • route.attach
    • route.start
    • route.end
    • route.controller.attach
    • route.controller.start
    • route.controller.iterate
    • route.controller.end
    • route.error
    • protocol.attach
  • Add Examples for:
    • Events
    • Generators

v0.9.23 - v0.9.26 ** - 2016 January 4

  • Introducing app.model()
  • Introducing app.view()
  • Introducing app.controller()
  • Added support for yo (generator-dssrv)
  • Support for node 4.2.4, 5.3.0

v0.9.22** - 2015 October 24

  • Body/footer separation in host.js for clarity

v0.9.21** - 2015 October 24

  • Don't JSON stringify $.failure() and $.success() responses because $.end() does it too

v0.9.19 - v0.9.20** - 2015 October 23

  • Fixed a https bug in host.js - if the port was undefined in the header it used 80. For https it should be 443. Now it's using the server's configuration to choose a default fallback protocol.

v0.9.16 - v0.9.18 - 2015 October

  • Chainable Server Instance Creation, Listening and Routing. Now you can do stuff like:
    server()
      .listen(8000)
      .get('/', function($){ $.end('hello world'); })
      .get('/other', function($){ $.end('hello other world') });
      .missing(function($){ $.end('404 :)') });
  • Fixed bugs with $.end

v0.9.8 - v0.9.16 - 2015 June - October

  • $.end() now serves JSON responses on requests where the "x-requested-with" == "XMLHttpRequest" or the "Authorization" header is set and contains "Bearer" or "Token" in it's value
  • $.end() now accepts JSON objects as a value and sends it as a JSON response
  • app.html now enables $.html as the default response when using $.end
  • Added $.html() - by default it just sets the content-header to html - to ovewrite it set a handler for $.htmlModule (input) in your dssrv header modules
  • Bug Fixes
  • Added Unit Tests for the new $.end() function

v0.9.7 - 2015 June

  • Fixed a bug that didn't allow registering named addresses without a port

v0.9.6 - 2015 June

  • Fixed a bug in server options that caused to display the dssrv header for every server instance

v0.9.5 - 2015 June

  • A server instance now has an options attribute server(options)
  • Added options.silent to server options which if set to true disables all logs generated by dssrv for that Server Instance

v0.9.4 - 2015 June

  • Treat localhost addresses equally (127.0.0.1, 192.168.99.100, localhost)
  • Listen on multiple addresses without redirects or host configs

v0.9.3 - 2015 May

  • The body for POST and PUT methods now require the appropriate "Content-Type" header to be parsed. For URL encoded body "application/x-www-form-urlencoded" is required, for JSON requests "application/json". If no "Content-Type" is specified then $.body contains the raw body content.

v0.9.2 - 2015 February

  • Support for options, put, head, patch, trace and delete HTTP methods
  • Added app.put
  • Added app.head
  • Added app.patch
  • Added app.delete
  • Added app.trace
  • Added app.options
  • Fixed body parsing mechanism. Every route's body is parsed that has a Content-Type or Transfer-Encoding Header. According to rfc2616-sec4

v0.9.1 - 2014 December - Security Patch

  • 100% Unit Test Coverage
  • Build coverage with TravisCI
  • Fixed a bug that didn't allow to create https server with other ports than 80

v0.9.0 - 2014 December - Major Release

  • Completely rewritten source code
  • New website with better documentation
  • Dropped the plugin system
  • Introduced middleware
  • Introduced app.error for error handling
  • Introduced app.missing for not found pages
  • Introduced app.header for global middleware at the beginning of routes
  • Introduced app.footer for global middleware at the end of routes
  • app.failure replaced app.error
  • Changed app.error to record errors instead of ending the response
  • Fixed many bugs

v0.8.6 - 2014 October

  • Fixed a bug that caused starting an HTTPS server in failure with port 80

v0.8.5 - 2014 September

  • Better Docs

v0.8.4 - 2014 September

  • support for safe asynchronous error handling. replaced try catch with domains
  • setting signal.passed to false also stops the plugin chain just as signal.data.passed

v0.8.3 - 2014 September

  • fixed a bug in the chain. when signal.data.passed is false and $.end() is called the chain stops and other listeners on the same route will not be called.
  • calling $.error() from now on sets $.passed to false

v0.8.2 - 2014 September

  • updated readme

v0.8.1 - 2014 September

  • added app.server
  • cleaned up unnecessary console.logs

v0.8.0 - 2014 September - Major Release

  • Unit Test Coverage 100%
  • Deprecated new App now require('dssrv') returns a server object
  • Replaced the querystring module with the new dssrv-qs
  • Added new signal method $.send to appending to the response message
  • Added new signal method $.chain to allow adding plugins to the plugin chain on the fly.
  • Added chainable commands like require('dssrv').server().start().get('/')
  • Changed the Plugin framework
    • Removed module.exports.onload listener
    • Added module.parent.return() instead
    • Added module.parent.options to access the plugin options
    • Added module.parent.app to access the calling application
  • Extended documentation
  • Added examples
  • Fixed every known bug

v0.7.x - 2014 August

  • Started Unit Testing
  • Fixed several bugs
  • Better documentation
  • Extended the Signal $

v0.6.x - 2014 Summer

  • Changed new Domain to new App
  • Extended the Signal $
  • Fixed several bugs
  • Better documentation

v0.5.x - 2014 Spring - Major Release

  • Rewrote dssrv completely from the ground up
  • IntroducingPlugins
  • Introducing the new Domain function
  • Introducing the Signal $
  • Introducing Sinatra like Router
  • MIT Licensed

v0.4.0 - 2013 Winter - 2014 Winter

  • Separated the code into several modules
    • Upload into dssrv-upload
    • Cookies into dssrv-cookies
    • Accounts into dssrv-accounts
    • Request into dssrv-request
    • Comet into dssrv-comet
    • Dictionary into dssrv-dictionary
    • tasks into dssrv-tasks
    • MySQL into dssrv-mysql
    • Use into dssrv-use
    • Next into nextjs
  • Fixed Several Bugs

v0.3.x - v0.4.0 2013 Spring & Summer - Major Release

  • Fixed several bugs

v0.2.5 - Started on 2013 Februray 20 - Winter

  • app.dictionary introduced
  • response.head introduced
  • response.html now includes arguments from response.head as a default
  • stand alone dictionary module
  • Improved html/form module with inside labels
  • comet.onExit introduced
  • cheerio introduced for html manipulation

v0.2.4 - Started on 2013 Junuary 23 - Winer

  • Cross file locals introduced inside the html module
  • Echo is now not part of the html module
  • Introduced app.notFound for 404 error routing
  • Introduced auto app.www
  • Introduced app.denie_requests
  • Introduced app.domain_redirect
  • public folder now can have any name because .html is no longer requires "/public" as the public folder's name instead uses the custom one specified in app.options.public

v0.2.3 - Started on 2012 October 3 - Fall

  • MySQL data mapping
  • MySQL is now based on the mysql.js javascript module
  • MySQL API drastically changed
  • Better form handling logic with check module
  • Improved overall stability

v0.2.2 - Started on 2012 - Spring

  • Added subdomain support with app.subdomain()
  • Better cookie set

v0.2.1 - Started on 2011 - Winter

  • Extension Apps with app.extend(); for a site which requires additional embeddable systems to improve it's customer experience, for example a forum, feedback or blog system
  • Very Simple Image Processing API with ImageMagick

v0.2.0 - Started on 2011 October 31 - Fall - Major Release

  • Easy HTTP/HTTPS server creation
  • Advanced Route Handling
    • With Manual URL handling (ex: /home, /about, /work)
    • With Dynamic URL Handling (ex: /posts/9874, /user/john)
  • Static File Handler
  • Advanced HTML with Node Module
    • With automatic .html to html with node integration
    • With Object Logger
    • With Advanced Error Tracking
  • Included Mysql Manager
  • Included Cookie Manager
  • Included HTML Upload Module
  • Included Async Module
  • Included Extension Modules ex: isset()
  • Stand alone HTTP Router - dropped expressjs
  • Stand alone HTML Parser - dropped jade

v0.1.0 - Started on 2011 June 1 - Summer

  • mysql support for express
  • based on express and jade