├── LICENSE ├── README.md └── cn_resource.md /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Sergey Titov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | NodeJS-Learning 2 | =============== 3 | [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/sergtitov/NodeJS-Learning?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 4 | 5 | Learning node.js made easy. This page contains collection of curated links to blog posts, articles, videos, tutorials, books, frameworks, modules, IDEs, testing tools, hosting providers, etc. to help you learn Node.js and keep up to date. 6 | 7 | It was just created and will be actively updated. Please fork and submit your pull-requests, if you would like to contribute. Thanks! 8 | 9 | ## Similar resources in other languages 10 | 11 | [Chinese](https://github.com/youyudehexie/node123) - fantastic list of Chinese resources. 12 | 13 | ## Installation 14 | 15 | Go to http://nodejs.org/, download node.js installer and follow instructions. Mac OS, Windows, and Linux are supported. 16 | 17 | ## JavaScript 18 | 19 | To use Node.js you need to have a decent understanding of JavaScript language. 20 | - [Codecademy - JS](http://www.codecademy.com/tracks/javascript) - Good for practicing and learning syntax. 21 | - [Crockford's videos](http://javascript.crockford.com/) 22 | - [Eloquent JavaScript](http://eloquentjavascript.net/) 23 | - [Essential JavaScript Design Patterns For Beginners](http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/) 24 | - [Advanced JavaScript Fundamentals](http://blog.buymeasoda.com/advanced-javascript-fundamentals/) 25 | - [Understand JavaScript Closures With Ease](http://javascriptissexy.com/understand-javascript-closures-with-ease/) 26 | - [JavaScript garden](http://bonsaiden.github.com/JavaScript-Garden/) 27 | - [JavaScript Patterns Book](http://oreilly.com/catalog/9780596806767) 28 | - [JavaScript: The Good Parts Book](http://oreilly.com/catalog/9780596517748/) 29 | - [JavaScript Promises](https://web.dev/promises/) 30 | - [JavaScript Guide](https://www.scaler.com/topics/javascript/) 31 | 32 | 33 | ## Development Tools/IDEs 34 | 35 | - [Yeoman](http://yeoman.io/) - Project and modules generator 36 | - [Gulp](http://gulpjs.com/) - Task runner/build system 37 | - [Grunt]() - Task runner/build system 38 | - [WebStorm/PHPStorm](http://www.jetbrains.com/webstorm/) - popular and extremely powerful IDE for coding web applications. Paid but you can get it for free , if you are an open-source developer (requierd an application approval). 39 | - [Node.js Tools for Visual Studio](https://nodejstools.codeplex.com/) - see [blog post](http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx) from team member Scott Hanselman. 40 | - NetBeans with [Node.js plugin](http://plugins.netbeans.org/plugin/36653/nodejs) 41 | - [Nodejs Sublime Text 2 Package](https://github.com/tanepiper/SublimeText-Nodejs) - a set of code completion, scripts and tools to work with Node.js. 42 | - [WebMatrix](http://www.microsoft.com/web/webmatrix/) - is a free, lightweight, cloud-connected web development tool from Microsoft. 43 | - [CodeRunner](http://krillapps.com/coderunner/) - Mac only paid IDE. 44 | - [Komodo](http://www.activestate.com/komodo-ide/features) - full-featured IDE from ActiveState is paid but there is also lean free version [Komodo Edit](http://www.activestate.com/komodo-edit). 45 | - [Nide](http://coreh.github.io/nide/) - is a web-based IDE for Node.JS that can run locally or on a remote server. Available both as a command-line tool and as a standalone Mac app. 46 | - [Nodeclipse & Enide](http://www.nodeclipse.org/) - is free open-source IDE based on Eclipse. 47 | - [Aptana Studio](http://www.aptana.com/) 48 | - [Scripted](https://github.com/scripted-editor/scripted) 49 | - [Brackets](http://brackets.io/) 50 | - [Visual Studio Code](https://code.visualstudio.com/) 51 | ### Online 52 | 53 | - [Cloud9](https://c9.io/) - cloud-based IDE with native support for development of Node.js applications including debugging and other features. Note that you can also [install it locally](http://www.cambus.net/setting-up-a-node-js-development-environment-with-npm-and-cloud9-ide-installed-locally/). 54 | - [Nitrous.io](https://www.nitrous.io/) - is both an IDE and environment in the cloud. Has both online and desktop versions. Paid. 55 | - [Koding](https://koding.com) - offers you a free rootable VM with Node. Also you can work on the same code with your friends. 56 | - [Cloud IDE (a.k.a eXo Cloud IDE, a.k.a codenvy)](https://codenvy.com/) - cloud development IDE and environemnt with continuous integration and other features. Offers both hosted and on-premises solutions. 57 | 58 | ## Hosting Providers 59 | 60 | - [Nodejitsu](https://www.nodejitsu.com/) - hosting, databases and private NPM. Free for Open Source. 61 | - [OpenShift](https://www.openshift.com/developers/node-js) 62 | - [Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs) - Dead simple to use. 63 | - [Modulus](https://modulus.io/) -Scalable application platform (PaaS) for developers, offering Node.js hosting, MongoDB, and performance analytics in the cloud. 64 | - [Codio](https://codio.com/) - Powerful web based IDE, free for public projects 65 | - [Digital Ocean](https://www.digitalocean.com) - cloud infrastructure provider 66 | 67 | 68 | ## Fundamentals 69 | 70 | - [Node.js FUNdamentals: A Concise Overview of The Main Concepts](http://webapplog.com/node-js-fundamentals-a-concise-overview-of-the-main-concepts) 71 | - Why Node.js 72 | - [Why The Hell Would I Use Node.js? A Case-by-Case Introduction](http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js) 73 | - [Why I use Node.js?](http://pettergraff.blogspot.com/2013/01/why-node.html) 74 | - [PHP vs. Node.js](http://webapplog.com/php-vs-node-js/) 75 | - Migrating to Node.js 76 | - [Dismantling the Monoliths](https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/) 77 | - [Node.js at PayPal](https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/) 78 | - [Official Documentation](http://nodejs.org/api/) 79 | - CommonJS Module System 80 | - http://docs.nodejitsu.com/articles/getting-started/what-is-require) 81 | - http://pages.citebite.com/i9e9e4d1yxip 82 | - [Node.js Modules Official Documentation](http://nodejs.org/api/modules.html) 83 | - [Managing module dependencies](http://howtonode.org/managing-module-dependencies) 84 | - [Using Node's Event Module](http://code.tutsplus.com/tutorials/using-nodes-event-module--net-35941) 85 | - [Understanding exports vs. module.exports](http://openmymind.net/2012/2/3/Node-Require-and-Exports/) 86 | 87 | ## Asynchronous Programming 88 | 89 | - [Understanding the node.js event loop](http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/) 90 | 91 | - [Avoiding Callback Hell with Async.js](http://www.slideshare.net/cacois/avoiding-callback-hell-with-asyncjs) 92 | - Promises 93 | - [Asynchronous Control Flow with Promises](http://howtonode.org/promises) 94 | - [Promises with Q](http://www.slideshare.net/async_io/javascript-promisesq-library-17206726) 95 | - [ES6 Generators and Preventing Callback Hell](http://www.sitepoint.com/javascript-generators-preventing-callback-hell/) 96 | - [Managing Node.js Callback Hell with Promises, Generators and Other Approaches](http://strongloop.com/strongblog/node-js-callback-hell-promises-generators/?utm_source=nodeweekly&utm_medium=email) 97 | 98 | 99 | ## Node Package Manager (npm) 100 | 101 | - [What is npm?](http://docs.nodejitsu.com/articles/getting-started/npm/what-is-npm) 102 | - [Introduction to npm](http://howtonode.org/introduction-to-npm) 103 | - Explore [registered public npm modules](https://npmjs.org/) 104 | - [How to publish your module to npm?](https://gist.github.com/coolaj86/1318304) 105 | - Node.js tips and tricks 106 | - [9 Quick Tips About npm](http://blog.ponyfoo.com/2013/12/14/9-quick-tips-about-npm) 107 | - [NPM tricks](http://www.devthought.com/2012/02/17/npm-tricks/) 108 | - [Task automation with npm run](http://substack.net/task_automation_with_npm_run) 109 | - Private NPM approches 110 | - [How to create a private npm.js repository](http://clock.co.uk/tech-blogs/how-to-create-a-private-npmjs-repository) 111 | - [A hierarchical npm-registry proxy that allows to support private npm repos without replicating the entire public registry](https://github.com/paypal/kappa) 112 | - [A lazy local cache for npm](https://github.com/mixu/npm_lazy) 113 | 114 | 115 | ## Debugging 116 | 117 | - [What’s New in Node.js v0.12: Debugging Clustered Apps with Node-Inspector](http://strongloop.com/strongblog/whats-new-nodejs-v0-12-debugging-clusters/) 118 | - [Video: Debugging Node.js with node-inspector](http://www.youtube.com/watch?v=03qGA-GJXjI) 119 | - [node-inspector](https://github.com/node-inspector/node-inspector) 120 | - [Using Eclipse as Node Applications Debugger](https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger) 121 | 122 | ## Tutorials 123 | 124 | - http://nodeschool.io/ 125 | - [Node js tutorial](https://hackr.io/tutorials/learn-node-js) - A user ranked online tutorials site hosting many relavant free and paid tutorials to learn Node js online. 126 | - https://www.codeschool.com/courses/real-time-web-with-nodejs 127 | - [The dead-simple step-by-step guide for front-end developers to getting up and running with node.js, express, jade, and mongodb](http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/) 128 | - [Make a RESTful todo app](http://webapplog.com/todo-app-with-express-jsnode-js-and-mongodb/) 129 | - [Make a simple CRUD app](http://mherman.org/blog/2015/08/24/node-express-swig-mongo-primer/) 130 | - [NodeJS and JavaScript for 2016 Onwards](https://vinkaga.gitlab.io/learn-node/) - Slides based tutorial for server side JavaScript with NodeJS 6.x (beginner to intermediate). 131 | - [How to add an API-Based CMS to NodeJS](https://www.storyblok.com/tp/node-js-cms) - How to integrate Storyblok, a component composer and headless CMS, to your Express.js app in a few easy steps. 132 | - [NodeJS Courses at Classpert](https://classpert.com/nodejs) - List of over 70 NodeJS Courses (free and paid) at Classpert Online Course Search 133 | 134 | ### Authentication 135 | - [Authentication](http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local) - Goes over local, facebook & twitter authentication. 136 | 137 | ### Command line 138 | - [Command line tool](http://javascriptplayground.com/blog/2012/08/writing-a-command-line-node-tool/) 139 | 140 | ## Blog posts/articles 141 | 142 | - [Node.js Production Practices](http://www.joyent.com/developers/node) - fantastic overview of design, deployment and debugging technics from [Joyent](http://www.joyent.com/). 143 | 144 | ## Videos 145 | 146 | - [Introduction to Node.js with Ryan Dahl](http://www.youtube.com/watch?v=jo_B4LTHi3I) - Ryan Dahl is a Node.js creator. Must see. 147 | - [Alex Ford: Node.js & Express 101](http://www.youtube.com/watch?v=BN0JlMZCtNU) 148 | - [142 conference presentation Videos](http://lanyrd.com/topics/nodejs/video/) from [Lanyard.com](http://lanyrd.com/) 149 | - [Node.js video tutorials by Pedro Teixeira](http://nodetuts.com/) 150 | - [Collection of node.js video tutorials](http://vidinterest.com/playlist/enbeeone3/nodejs-tutorial-videos) at [vidinterest.com](vidinterest.com) 151 | - [Node.js has Arrived!](http://vimeo.com/70603516) - In this video, Node.js core committer Bert Belder discusses some of the new features in Node v0.12 including Streams3, VM improvements, cluster round-robin, execSync and profiling APIs. 152 | - [Getting started with node.js](http://channel9.msdn.com/Series/Visual-Studio-Online-Monaco/Getting-started-with-nodejs) at [channel9.msdn.com](channel9.msdn.com) 153 | -[Basics of Express and Mongo](http://www.youtube.com/watch?v=eD2I0zAjM5g&list=PLw2e3dFxewkLL73aUzOP-efQnXOTtMLbY) 154 | -[Getting Started with Sails.js](http://irlnathan.github.io/sailscasts/) 155 | -[History of Node.js](http://www.youtube.com/watch?v=SAc0vQCC6UQ) 156 | - [StrongLoop Talks](https://strongloop.com/node-js/videos/) 157 | 158 | ## Free Courses 159 | - [Startup engineering by Stanford](https://www.coursera.org/course/startup) 160 | - [NodeJS Exercises for Beginners](http://paqmind.com/courses/nodejs-beginner/) 161 | 162 | ## Paid Courses 163 | - [Real-time Web with Node.js](https://www.codeschool.com/courses/real-time-web-with-nodejs) from [codeschool.com](https://www.codeschool.com/) 164 | - [Getting Started with Node.js and the NPM Package Manager](http://teamtreehouse.com/library/code-racer/getting-started-with-nodejs-and-the-npm-package-manager) from [Treehouse](http://teamtreehouse.com/). 165 | - [Node.js First Look](http://www.lynda.com/Nodejs-tutorials/Nodejs-First-Look/101554-2.html)(beginner) and [Node.js Essential Training](http://www.lynda.com/JavaScript-tutorials/Nodejs-Essential-Training/141132-2.html)(advanced) at [lynda.com](http://www.lynda.com/Node-js-training-tutorials/1283-0.html) 166 | - [Meet Node.js](https://peepcode.com/products/nodejs-i) and [Full-stack Node.js](https://peepcode.com/products/full-stack-nodejs-i) at [peepcode.com](peepcode.com/) 167 | - Node.js courses at Pluralsight 168 | - [Meet Node.js](http://pluralsight.com/training/courses/TableOfContents?courseName=meet-nodejs) 169 | - [Introduction to Node.js](http://pluralsight.com/training/courses/TableOfContents?courseName=node-intro) 170 | - [Full Stack Node.js](http://pluralsight.com/training/courses/TableOfContents?courseName=full-stack-nodejs) 171 | - [Building AngularJS and Node.js Apps with the MEAN Stack](http://pluralsight.com/training/courses/TableOfContents?courseName=building-angularjs-nodejs-apps-mean) 172 | - [Web Development with ExpressJS](http://pluralsight.com/training/courses/TableOfContents?courseName=expressjs) 173 | - [Node on Windows and Azure](http://pluralsight.com/training/courses/TableOfContents?courseName=node-on-azure) 174 | 175 | ## Free Books 176 | 177 | - [The Node Beginner Book](http://www.nodebeginner.org/#about) 178 | - [The Art of Node](https://github.com/maxogden/art-of-node) 179 | - [JavaScript and Node FUNdamentals](https://leanpub.com/jsfun/read) 180 | - [Mixu's Node book](http://book.mixu.net/node/) 181 | - [A collection of Node.js books](http://book.rednode.cn/) 182 | - [Mastering Node.js](http://visionmedia.github.io/masteringnode/) 183 | 184 | ## Paid Books 185 | 186 | - [Node.js in Action](http://www.amazon.com/Node-js-Action-Mike-Cantelon/dp/1617290572/ref=sr_1_1?s=books&ie=UTF8&qid=1391739265&sr=1-1&keywords=%22node.js%22) 187 | - [Learning Node.js: A Hands-On Guide to Building Web Applications in JavaScript Marc Wandschneide](http://www.amazon.com/Learning-Node-js-Hands-On-Applications-JavaScript/dp/0321910575/ref=sr_1_1?ie=UTF8&qid=1394518585&sr=8-1&keywords=learning+node.js) 188 | - [JavaScript on the Server Using Node.js and Express](http://www.amazon.com/JavaScript-Server-Node-js-Express-Development/dp/0956737080/ref=sr_1_20?s=books&ie=UTF8&qid=1391739340&sr=1-20&keywords=%22node.js%22) 189 | - [Express.js Guide](http://www.amazon.com/Express-js-Guide-Comprehensive-Book/dp/1494269279/ref=sr_1_2?s=books&ie=UTF8&qid=1391740486&sr=1-2&keywords=%22node.js%22+express) 190 | - [Node js The Right Way](http://www.amazon.com/Node-js-Right-Way-Server-Side-JavaScript/dp/1937785734/ref=sr_1_1?ie=UTF8&qid=1393208626&sr=8-1&keywords=Node+js+The+Right+Way.) 191 | - [Learn JS](http://learnjs.io/) 192 | - [Get Programming with Node.js](https://www.manning.com/books/get-programming-with-node-js) 193 | 194 | 195 | ## Frameworks 196 | 197 | - Sinatra like: 198 | - [connect](https://github.com/senchalabs/connect) - an extensible HTTP server framework for Node.js using "plugins" known as middleware. 199 | - [express.js](http://expressjs.com/guide.html) - a Sinatra inspired Web development framework for Node.js. 200 | - [hapi](https://github.com/spumko/hapi) - a rich framework for building Web applications and services. 201 | - [express.io](https://github.com/techpines/express.io) = Express + Socket.io. 202 | - [koa](https://github.com/koajs/koa) - an expressive middleware for Node.js using generators. 203 | - [Flatiron](https://github.com/flatiron/flatiron) - framework components for Node.js and a browser. 204 | - [total.js](https://github.com/totaljs/framework) - a Web application framework for creating rich Web sites and Web services. 205 | - MVC: 206 | - [Geddy](http://geddyjs.org) - a simple, structured Web framework for Node.js. 207 | - [Sails.js](http://sailsjs.org) - a realtime MVC Framework for Node.js. 208 | - [Compound](http://compoundjs.com/) - the compound formula is Express + Structure + Extensions. 209 | - Full stack: 210 | - [meteor.js](https://github.com/meteor/meteor) - Meteor is an ultra-simple environment for building modern Web applications. Built using Node.js, Meteor is a framework on its own. Please see an [amazing list of Meteor resources](http://yauh.de/articles/376/best-learning-resources-for-meteorjs) for more information. 211 | - [Derby](https://github.com/codeparty/derby) - the MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers. 212 | - [SocketStream](https://github.com/socketstream/socketstream) - A fast, modular Node.js Web framework dedicated to building realtime single-page applications. 213 | 214 | If you would like to learn more about Node.js frameworks, please visit [nodeframework.com](http://nodeframework.com/) and [nodewebmodules.com](http://nodewebmodules.com). 215 | 216 | ## CLI TOOLS 217 | 218 | - [Nodemon](http://remysharp.com/2014/01/20/nodemon-1-0/) 219 | 220 | ## CMS 221 | - [Ghost](https://ghost.org/) 222 | - [Keystone](http://keystonejs.com/) 223 | - [Calipso](http://calip.so/) 224 | - [Hatch](http://hatchjs.com/) 225 | 226 | ## Static Site Generators 227 | - [Hexo](http://hexo.io/) - fast, simple & powerful blog framework. 228 | - [Metalsmith](http://www.metalsmith.io/) - extremely simple, pluggable static site generator. 229 | - [Harp](http://harpjs.com/) - static web server with built-in preprocessing. 230 | - [Assemble](http://assemble.io/) - static site generator for Grunt.js, Yeoman and Node.js. 231 | - [Wheat](https://github.com/creationix/wheat) - a blog engine for coders written in node.JS. 232 | - [Punch](https://github.com/laktek/punch) - a fun and easy way to build modern websites. 233 | - [Blacksmith](https://github.com/flatiron/blacksmith) - generic static site generator built using flatiron, plates, and marked. 234 | - [Poet](https://github.com/jsantell/poet) - a node.js blog engine. 235 | 236 | > See extensive collection of Static Site Generators including other languages at http://www.staticgen.com/ 237 | 238 | ## Libraries 239 | 240 | - [socket.io](https://github.com/LearnBoost/socket.io) - a realtime application framework for Node.JS, with HTML5 WebSockets and cross-browser fallbacks support. 241 | - [mongoose](https://github.com/LearnBoost/mongoose) - MongoDB object modeling designed to work in an asynchronous environment. 242 | - [winston](http://github.com/flatiron/winston) - a multi-transport asynchronous logging library for Node.js 243 | - [passport](https://github.com/jaredhanson/passport) - simple, unobtrusive authentication for Node.js. 244 | - [async](https://github.com/caolan/async) - asynchronous utilities for Node and the browser. 245 | - [Q](https://github.com/kriskowal/q) - a tool for making and composing asynchronous promises in JavaScript. 246 | - [co](https://github.com/visionmedia/co) - the ultimate generator based flow-control goodness for nodejs; 247 | - [jade](https://github.com/visionmedia/jade) - Jade - a robust, elegant, feature-rich template engine for Node.js. 248 | - [ejs](https://github.com/visionmedia/ejs) - embedded JavaScript templates for Node.js. 249 | - [lodash](https://github.com/lodash/lodash) - a utility library delivering consistency, customization, performance, and extras. 250 | - [request](https://github.com/mikeal/request) - a simplified HTTP request client. 251 | - [config](https://github.com/lorenwest/node-config) - a runtime configuration for Node.js. modules. 252 | - [joi](https://www.npmjs.com/package/joi) - The most powerful schema description language and data validator for JavaScript. 253 | 254 | 255 | ### Authentication and Security 256 | - [Passport](http://passportjs.org/) - simple, unobtrusive authentication for Node.js that supports OpenID and OAuth. 257 | 258 | 259 | # 260 | ## Testing 261 | 262 | Read about various approaches to testing Node.js code: 263 | 264 | - [Testing in Node.js](http://code.tutsplus.com/tutorials/testing-in-nodejs--net-35018) 265 | - [Testing NodeJS with Mocha, Should, Sinon, and JSCoverage](http://www.slideshare.net/mlilley/testing-node-js-with-mocha) 266 | - [Setting up Mocha and JSCoverage](http://www.seejohncode.com/2012/03/13/setting-up-mocha-jscoverage/) 267 | - [Acceptance testing with supertest](http://www.scotchmedia.com/tutorials/express/authentication/2/02) 268 | - [Testing node.js applications with Jasmine](http://blog.codeship.io/2013/08/20/testing-tuesday-19-how-to-test-node-js-applications-with-jasmine.html) 269 | - [Mocking Dependencies using [rewire]](http://howtonode.org/mocking-private-dependencies-using-rewire) 270 | - [Unit Testing and TDD in Node.js – Part 1](https://www.codementor.io/nodejs/tutorial/unit-testing-nodejs-tdd-mocha-sinon), [Part 2](https://www.codementor.io/nodejs/tutorial/unit-testing-tdd-node-js-nockjs-part-2) 271 | 272 | Some popular testing frameworks: 273 | 274 | - [mocha](https://github.com/visionmedia/mocha) - a simple, flexible JavaScript test framework for Node.js and a browser. (BDD, TDD, QUnit styles via interfaces). 275 | - [jasmin-node](https://github.com/mhevery/jasmine-node) - integration of the Jasmine Spec framework with Node.js. 276 | - [sinon](https://github.com/cjohansen/Sinon.JS) - test spies, stubs, and mocks for JavaScript. 277 | - [chai](https://github.com/chaijs/chai) - a BDD / TDD assertion framework for Node.js and a browser. 278 | - [supertest](https://github.com/visionmedia/supertest) - a super-agent driven library for testing Node.js HTTP servers using a fluent API. 279 | - [rewire](https://github.com/jhnns/rewire) - a dependency injection for Node.js applications. 280 | - [node-jscoverage](https://github.com/visionmedia/node-jscoverage) - JSCoverage for Node.js. 281 | 282 | 283 | ## Keep up to date 284 | 285 | ### What To Read 286 | 287 | ### Communities/Groups 288 | 289 | - [Google Node.js Group](https://groups.google.com/forum/#!forum/nodejs) 290 | - [Google+ Node.js Community](https://plus.google.com/communities/115365528781941125390) 291 | - [CNode](http://cnodejs.org/) - Node.js professional Chinese community 292 | - [Node.js on Reddit](http://www.reddit.com/r/node/) 293 | - [Stackoverflow Node.js tag](http://stackoverflow.com/questions/tagged/node.js) 294 | - [NodeJsForums.com](http://www.nodejsforums.com) 295 | - IRC - For real-time chat about Node development go to [irc.freenode.net](irc.freenode.net) in the **#node.js** channel with an [IRC client](http://colloquy.info/) or connect in your web browser to the channel using [freenode's WebChat](http://webchat.freenode.net/?channels=node.js). 296 | 297 | ## Blogs/News 298 | 299 | - ["How To Node" blog](http://howtonode.org/) 300 | - [Node.js Weekly](http://nodeweekly.com/) - an email list that gathers up the latest events and news from around the Node.js community. 301 | - [NodeUp](http://nodeup.com/) - a podcast covering the latest Node news in the community. 302 | 303 | ### Who to Follow 304 | 305 | - [TJ Holowachuk](https://github.com/visionmedia) - express, Jade, Mocha, Stylus 306 | - [Isaac Z. Schlueter](https://github.com/isaacs) - maintainer of Node.js / NPM 307 | - [Mikeal Rogers](https://github.com/mikeal) - Request 308 | - [James Haliday "substack"](https://github.com/substack) - Browserify, dnode, Optimist 309 | - [Guillermo Rauch](https://github.com/guille) - Socket.IO 310 | 311 | ### Node mavens 312 | 313 | You can find the most famous Node.js developer at [Nodemavens](http://nodemavens.com/). 314 | 315 | ## Resource 316 | - [Rednode garden](http://yuan.rednode.cn/resource) 317 | - [Nodecloud](http://nodecloud.com) 318 | - [Hackr.io](https://hackr.io/tutorials/learn-node-js) 319 | 320 | ## Credits 321 | 322 | Inspired by amazing [AngularJS-Learning](https://github.com/jmcunningham/AngularJS-Learning) 323 | 324 | ## Contributors 325 | 326 | - [Eugene Tsypkin](https://github.com/jhony-chikens) 327 | - [Pavel Voronin](https://github.com/voroninpaul) 328 | - [jacksongeller](https://github.com/jacksongeller) 329 | - [Pana Wang](https://github.com/Pana) 330 | - [Stephen Keep](https://github.com/stephenkeep) 331 | 332 | [co]: https://github.com/visionmedia/co 333 | 334 | ## License 335 | 336 | (The MIT License) 337 | 338 | Copyright (c) 2014 Sergey Titov 339 | 340 | Permission is hereby granted, free of charge, to any person obtaining 341 | a copy of this software and associated documentation files (the 342 | 'Software'), to deal in the Software without restriction, including 343 | without limitation the rights to use, copy, modify, merge, publish, 344 | distribute, sublicense, and/or sell copies of the Software, and to 345 | permit persons to whom the Software is furnished to do so, subject to 346 | the following conditions: 347 | 348 | The above copyright notice and this permission notice shall be 349 | included in all copies or substantial portions of the Software. 350 | 351 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 352 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 353 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 354 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 355 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 356 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 357 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 358 | -------------------------------------------------------------------------------- /cn_resource.md: -------------------------------------------------------------------------------- 1 | #node.js中文资料导航 2 | 3 | ##Node.js 4 | + [HomePage](http://www.nodejs.org/) 5 | + [Infoq深入浅出Node.js系列(进阶必读)](http://www.infoq.com/cn/articles/what-is-nodejs) 6 | + [Node.js中文文档](http://nodeapi.ucdok.com/#/api/) 7 | + [被误解的 Node.js](http://www.ibm.com/developerworks/cn/web/1201_wangqf_nodejs/) 8 | + [Node.js C++ addon编写实战系列](http://deadhorse.me/nodejs/2012/10/08/c_addon_in_nodejs_node_gyp.html) 9 | + [热门node.js模块排行榜,方便找出你想要的模块](https://nodejsmodules.org/) 10 | + [nodejs多线程,真正的非阻塞](http://cnodejs.org/topic/518b679763e9f8a5424406e9) 11 | + [浅析nodejs的buffer类](http://cnodejs.org/topic/5189ff4f63e9f8a54207f60c) 12 | + [利用libuv编写异步多线程的addon实例](http://cnodejs.org/topic/519ceb5263e9f8a542c19764) 13 | + [Node.js中exports与module.exports的区别](http://weizhifeng.net/node-js-exports-vs-module-exports.html) 14 | + [Node.js http 管道拒绝服务漏洞](http://cnodejs.org/topic/5293550ca6957a08096508fb) 15 | + [Node.js高级编程](http://yaohuiji.com/2013/01/08/pro-node-article-list/) 16 | + [Node.js代码风格指南](https://github.com/dead-horse/node-style-guide) 17 | 18 | ##业界新闻 19 | + [NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目](http://www.csdn.net/article/2013-12-17/2817827-10-surprising-Node.js-projects) 20 | + [看eBay如何评价他们的Node.js首次尝鲜](http://www.csdn.net/article/2013-05-20/2815364-how-ebays-first-node-js-application-were-built) 21 | + [程序员如何说服老板采用Node.js?](http://www.csdn.net/article/2012-05-03/2805296) 22 | + [百万级并发 Node.js也能行](http://www.csdn.net/article/2012-08-21/2808861) 23 | + [高性能Node.js:来自LinkedIn Mobile的10条优化建议](http://www.rockdai.com/?p=596) 24 | + [Kraken:改变PayPal开发文化的Node.js框架](http://www.csdn.net/article/2013-11-25/2817617-PayPal-Kraken-Nodejs-Framework) 25 | + [Groupon抛弃Rails,转向Node.js](http://www.iteye.com/news/28358) 26 | 27 | 28 | ##经验分享 29 | 30 | + [SDCC讲师专访:淘宝朴灵谈Node.js](http://www.csdn.net/article/2012-07-30/2807863) 31 | + [Node.js的核心与红利](http://www.programmer.com.cn/13844/) 32 | + [QCon北京2013 Node.js专题出品人朴灵专访](http://www.linuxeden.com/html/news/20130109/134241.html) 33 | + [一个周末掌握IT前沿技术之node.js篇](http://ittechnical.sinaapp.com/category/node-js/) 34 | + [用node+express搭建多人博客教程系列](http://cnodejs.org/topic/515b009a6d38277306192e4e) 35 | + [Node.js静态文件服务器实战](http://www.infoq.com/cn/news/2011/11/tyq-nodejs-static-file-server) 36 | + [人人和微博登录模块的实现](http://cnodejs.org/topic/51ce18bb73c638f3706ca7bb#51ce818c73c638f3707422e6) 37 | + [《京JS》会议 & V8上的JS优化](http://blog.sina.com.cn/s/blog_6801fe420101qaz2.html) 38 | + [沪 JS 国内讲师的 PPT 收集](http://cnodejs.org/topic/505acc95fd37ea6b2f1813de) 39 | + [给Node.js新手的7条小建议](http://cnodejs.org/topic/525216a3f29c7bbd3c877cbf) 40 | 41 | ##模块导航 42 | 43 | ###web服务器框架 44 | 45 | ####最流行的web框架Express 46 | + [HomePage](http://expressjs.com/) 47 | + [加装涡轮,提速expressjs](http://cnodejs.org/topic/51c3ef9f73c638f37058e6bc) 48 | + [给 connect 的 static 模块加上url路径前缀](http://cnodejs.org/topic/4fce14e0e5e72c25180b51d1) 49 | + [研究nodeclub 登陆验证逻辑的一些心得](http://cnodejs.org/topic/515535485dff253b374288da) 50 | + [Express.js 中文入门指引手册](http://www.csser.com/board/4f77e6f996ca600f78000936) 51 | + [Connect架构初探 for 新手](http://cnodejs.org/topic/51a2f562776b2e7f035f2850) 52 | + [使用 Express + Socket.IO 搭建多人聊天室](http://cnodejs.org/topic/51d51cd8d44cbfa3047926ba) 53 | 54 | ####国人开源web框架rrestjs 55 | + [HomePage](http://rrest.cnodejs.net/) 56 | 57 | ####实时应用web框架meteor 58 | + [HomePage](http://meteor.com/) 59 | + [Meteor-DDP翻译](http://cnodejs.org/topic/51b030d9555d34c678e5fb2e) 60 | + [Meteor 非官方中文文档(不包含API部分)](http://cnodejs.org/topic/519b655a63e9f8a5429cb70e) 61 | + [基于meteor开发的开源项目列表](http://cnodejs.org/topic/50d0466b637ffa4155aed34f) 62 | 63 | ####基于Express的实时MVC框架Sails 64 | + [HomePage](https://github.com/balderdashy/sails) 65 | 66 | ####Koa,下一代 Node.js web 框架 67 | + [HomePage](http://koajs.com) 68 | + [koa-guide](https://github.com/turingou/koa-guide) 69 | 70 | ###Mysql 老牌关系型数据库 71 | 72 | + [HomePage](https://github.com/felixge/node-mysql) 73 | + [mysql处理BIGINT里面的一个坑](http://cnodejs.org/topic/51a8c64d555d34c67835037d) 74 | + [使用node-mysql中的连接池](http://cnodejs.org/topic/51676ac26d38277306fe7c85) 75 | + [mysql自动断开解决办法](http://cnodejs.org/topic/516b77e86d382773064266df) 76 | 77 | ###Mongodb 78 | 79 | + [node-mongodb-native](https://github.com/mongodb/node-mongodb-native) 80 | + [mongoose](https://github.com/LearnBoost/mongoose) 81 | + [如何使用mongoose对一个100万+的mongodb的表进行遍历操作](http://cnodejs.org/topic/51508570604b3d512113f1b3) 82 | + [[技术讨论]mongodb驱动的正确使用方法](http://cnodejs.org/topic/5190d61263e9f8a542acd83b) 83 | 84 | ###异步流程处理 85 | 86 | ####async 87 | + [HomePage](https://github.com/caolan/async) 88 | + [Async中文详解](http://freewind.me/blog/20120518/932.html) 89 | 90 | ####eventproxy 91 | + [HomePage](https://github.com/JacksonTian/eventproxy) 92 | 93 | ####Q Promise 异步模式 94 | + [HomePage](https://github.com/kriskowal/q) 95 | + [在Node.js 中用 Q 实现Promise – Callbacks之外的另一种选择](http://www.ituring.com.cn/article/54547) 96 | 97 | ####co 98 | + [HomePage](https://github.com/visionmedia/co) 99 | + [深入理解 Yield](http://www.html-js.com/article/column/77) 100 | + [co wiki](https://github.com/visionmedia/co/wiki) 101 | 102 | ###Redis 内存键值数据库 103 | 104 | + [node_redis](https://github.com/mranney/node_redis) 105 | 106 | ###Pomelo 网易出品的网页游戏框架 107 | 108 | + [pomelo](https://github.com/NetEase/pomelo) 109 | + [Infoq深入浅出node.js游戏服务器开发](http://www.infoq.com/cn/articles/game-server-development-1) 110 | + [官网wiki](https://github.com/NetEase/pomelo/wiki/Home-in-Chinese) 111 | + [响应非常迅速的官方论坛](http://nodejs.netease.com/) 112 | 113 | ###字符格式 114 | + [開源的簡繁轉換庫OpenCC支持Node.js了](http://cnodejs.org/topic/516a96d16d38277306349507) 115 | + [iconv-lite扩展:增加big5/shift-jis支持](http://cnodejs.org/topic/51923a2f63e9f8a542c71123) 116 | 117 | ###网页模板引擎 118 | + [WEB模板jade、ejs、handlebars 万行代码解释效率比较,jade完败](http://cnodejs.org/topic/50e70edfa7e6c6171a1d70fa) 119 | + [Javascript模板引擎性能对比及几点优化](http://cnodejs.org/topic/4f16442ccae1f4aa27001109) 120 | + [让 ejs 更加快 | Let ejs faster with options._with = false](http://cnodejs.org/topic/51c2c2e373c638f3703f4929) 121 | + [EJS快速入门教程](http://www.csser.com/board/4fddc4f0b28ed7d857001674) 122 | 123 | 124 | ###图片处理 125 | + [Nodejs跨平台轻量级图片编解码库【增加Jpeg质量调整】](http://cnodejs.org/topic/512b9fecdf9e9fcc580eb248) 126 | + [node-ccap模块生成captcha验证码](http://cnodejs.org/topic/50f90d8edf9e9fcc58a5ee0b) 127 | + [使用nodejs将html5 canvas base64编码图片保存为文件](http://cnodejs.org/topic/4f939c84407edba2143c12f7) 128 | 129 | ###运维 130 | + [Node.js 异步异常的处理与domain模块解析](http://deadhorse.me/nodejs/2013/04/13/exception_and_domain.html) 131 | + [关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)](http://cnodejs.org/topic/50463565329c5139760c34a1) 132 | + [forever 替代工具 pm2 的介绍](http://cnodejs.org/topic/51cc49e973c638f37042f7b4) 133 | + [upstart封装mongodb应用为系统服务](http://cnodejs.org/topic/51c562d673c638f3707bb8cc) 134 | + [告别node-forever,拥抱PM2](http://se77en.cc/2013/06/27/goodbye-node-forever-hello-pm2-translation/) 135 | + [阿里云主机Nginx下配置NodeJS、Express和Forever](http://cnodejs.org/topic/5059ce39fd37ea6b2f07e1a3) 136 | 137 | ##性能测试 138 | 139 | + [阿里出品的node.js调研与服务性能测试](http://www.tbdata.org/archives/1285) 140 | + [多核单服务器各种配置和业务压力下的node.js性能测试](http://snoopyxdy.blog.163.com/blog/static/6011744020117315192204/) 141 | + [巅峰对决:node.js和php性能测试](http://snoopyxdy.blog.163.com/blog/static/60117440201183101319257/) 142 | 143 | 144 | ##活跃开发者(排名不分先后) 145 | 146 | + [朴灵](https://github.com/JacksonTian) 147 | + [dead_horse/死马](http://deadhorse.me/) 148 | + [snoopyxdy](http://snoopyxdy.blog.163.com/) 149 | + [Python发烧友](http://fengmk2.github.io/) 150 | + [老雷](http://ucdok.com/) 151 | + [shiedman](http://cnodejs.org/user/shiedman) 152 | + [jiyinyiyong](http://jiyinyiyong.github.io/blog/) 153 | 154 | 155 | ##开源案例 收集Cnode的开源项目 156 | 157 | ###社交类 158 | 159 | + [Cnodejs 最活跃的Node.js社区](https://github.com/cnodejs/nodeclub/) 160 | + [晓知 个人博客](http://cnodejs.org/topic/50f8bbfedf9e9fcc58a015ab) 161 | + [使用Nodejs编写多人订餐系统](https://github.com/willerce/canku) 162 | + [NodeJS写的WebQQ](http://cnodejs.org/topic/517b4be16d38277306984a81) 163 | + [Yblog 博客程序](http://cnodejs.org/topic/51be6c2960af11cd33604776) 164 | + [noderce博客程序](http://cnodejs.org/topic/5023eeb9f767cc9a51032f68) 165 | 166 | 167 | ###工具类 168 | 169 | + [wechat微信中间件](https://github.com/node-webot/wechat) 170 | + [深度遍历目录/列出目录下所有文件](http://cnodejs.org/topic/51cb771973c638f3701acecd) 171 | + [lincell发布0.1.1版本,一行命令创建IDE](https://github.com/sumory/lincell) 172 | + [HTML标签XSS过滤模块](http://cnodejs.org/topic/5058962f8ea56b5e7806b2a3) 173 | + [基于Node.js的中文分词模块](https://github.com/leizongmin/node-segment) 174 | + [纯真IP库lib-qqwry](http://cnodejs.org/topic/51c044ee57628b975f088c7a) 175 | + [豆瓣SDK](http://cnodejs.org/topic/51ae41d7555d34c678ab4cce) 176 | + [数字与字符串转换模块baseN,支持2~62间任意进制转换](http://cnodejs.org/topic/51e7b69af4963ade0e2332a5) 177 | 178 | ##商业应用 179 | 180 | + [淘宝数据魔方](http://mofang.taobao.com/) 181 | + [淘宝指数](http://shu.taobao.com/) 182 | + 淘宝时光机 183 | + [点点网](http://www.diandian.com/) 184 | + [花瓣网](http://huaban.com/) 185 | + [雪球网](http://xueqiu.com/) 186 | + 小米手机抢购 187 | + 网易pomelo消息推送系统 188 | + PayPal 189 | + Groupon 190 | + 百度推送平台 191 | + 新浪微博DB proxy 192 | + 腾讯朋友网推送 193 | 194 | 195 | ##node.js中文书 196 | 197 | ###[了不起的Node.js](http://book.douban.com/subject/25767596/) 198 | ![](http://img3.douban.com/mpic/s27132823.jpg) 199 | 200 | ###[九浅一深Node.js](http://book.douban.com/subject/25768396/) piao大作品 201 | ![](http://img5.douban.com/mpic/s27134708.jpg) 202 | 203 | ###[node.js入门经典](http://book.douban.com/subject/23780706/) 204 | ![](http://img5.douban.com/mpic/s26588828.jpg) 205 | 206 | ###[node.js开发指南](http://book.douban.com/subject/10789820/) 207 | ![](http://img5.douban.com/mpic/s10307479.jpg) 208 | 209 | 欢迎各位node.js爱好者,提交分享手上的资源。 210 | --------------------------------------------------------------------------------