天天看點

Node.js開發者有福了!Express 3.0釋出

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/8114422

作者:chszs,轉載需注明。

作者部落格首頁:http://blog.csdn.net/chszs

Express 3.0是一個維護版本,針對2.x版修複了很多問題,并加入了很多新功能。

在使用Express架構時,要記住,Express架構是幫助開發者快速實作HTTP通信相關的功能,而不是成為像Rails那樣功能強大、全面的架構。

Connect 2.x

Changes introduced by Connect 2.x:

added err.status support to Connect’s default end-point

added session() “proxy” setting to trust “X-Forwarded-Proto”

added cookieSession() middleware

added compress() middleware for gzipped responses

added multipart() middleware

added json() middleware

added urlencoded() middleware

added limit option to the three above middleware

added defer option to multipart() to listen on formidable’s events

added debug() instrumentation to aid in debugging

changed basicAuth()’s req.remoteUser to req.user

changed session() to only set-cookie on modification (hashed session json)

changed bodyParser() to be an aggregate of json(), multipart() and urlencoded()

moved many cookie-related utils into npm

moved static()’s logic into a separate npm module named “send”

increase perf ~%20 by memoizing url parsing

removed router() middleware

fixed default encoding for logger(), now “utf8” instead of “ascii”

fixed mount-path case-sensitivity

Connect docs are available at http://www.senchalabs.org/connect/, and will eventually be mirrored on expressjs.com as well for convenience, along with usage guides.

作者:chszs,轉載需注明。作者部落格首頁:http://blog.csdn.net/chszs

Express 3.x

Changes introduced by Express 3.x:

added several new examples in ./examples

added unit testing for the examples (most of them at least)

added res.jsonp() to explicitly opt-in to JSONP support

added ETags and conditional-GET handling to res.send() responses

added “jsonp callback name” setting

added support for status code as first or second arg to res.send() and res.redirect()

added req.range(size) to parse Range header fields

added req.auth for basic auth

added res.links(obj) to set response the Link header field for pagination

added res.format(obj) for content-negotiation

added req.fresh for conditional-GETs

added req.stale for conditional-GETs

added mount-point relative redirection support to res.redirect()

added req.ip for the remote address (supporting reverse proxies)

added req.ips for remote address(es) (supporting reverse proxies)

added [] support in jsonp callback

added app.get(name) to compliment app.set(name, val)

added app.engine() to register template engines (replaces app.register())

added req.subdomains to return an array of subdomains

added req.protocol to return the request protocol string (“http” or “https”)

added req.secure to assert that req.protocol is “https”

added req.path to return the parsed url’s pathname

added req.host to return hostname (Host void of port)

added debug() instrumentation to aid debugging

added req.accepts()

added req.acceptsLanguage()

added req.acceptsCharset()

added req.accepted

added req.acceptedLanguages

added req.acceptedCharsets

added “json replacer” setting to manipulate json responses (remove private keys etc)

added “json spaces” setting to compress or expand json as you like (defaults to 2 in dev)

added express.application prototype

added express.request prototype

added express.response prototype

added app.render() for app-level templates

added res.type() to replace old res.contentType()

added { signed: true } option to res.cookie()

added async signature to res.render(), engines in consolidate.js work OOTB

removed partial()

removed express-level layout support (engines provide similar)

renamed “case sensitive routes” to “case sensitive routing”

removed res.signedCookie()

removed “root” setting

removed res.redirect('home') support

removed req.notify()

removed app.register()

removed app.redirect()

removed app.is()

removed app.helpers()

removed app.dynamicHelpers()

Head over to the New Features in 3.x wiki page for a more comprehensive list of additions, or to 3.x migration to help you upgrade if you wish to do so.

繼續閱讀