Skip to content

Instantly share code, notes, and snippets.

@bydga
Last active November 4, 2015 14:49
Show Gist options
  • Save bydga/84227b9c3b84bd5fa0ab to your computer and use it in GitHub Desktop.
Save bydga/84227b9c3b84bd5fa0ab to your computer and use it in GitHub Desktop.
Debugování nodu

Debugování node.js aplikace

Nainstalujeme node-inspector modul

npm install -g node-inspector

přepínač -g znamená, že se nainstaluje do /Users/bydga/.nvm/versions/node/v4.2.1/bin/node-inspector

OT: standardní npm install express nainstaluje modul do aktuální složky, do ./node_modules/express

Uděláme si simple appku

mkdir debug
cd debug
npm init
npm install -S express async

uděláme soubor lib/model.js

var users = [
   {id: 1, name: "jednicka" },
   {id: 2, name: "dvojka" },
   {id: 3, name: "trojka" }
]

module.exports = {
  getRandomUser: (next) => {
    var duration = Math.floor(Math.random() * 500) + 100
    var user = users[Math.floor(Math.random()*users.length)]
    console.log("getRandomUser called, will return result in", duration)
    setTimeout(() => {next(null, user)}, duration)
  }
}

soubor index.js

var express = require("express")
var async = require("async")
var model = require("./lib/model")

app = express()

app.get("/", (req, res) => {

	console.log("got req on /")
	var start = new Date()

	async.parallel({
		one: (next) => {
			model.getRandomUser((e, user) => {
				if (e)
					return next(e)
				return next(null, user)
			})
		},

		two: (next) => {
			model.getRandomUser(next)
		},

		three: (next) => {
			model.getRandomUser(next)
		},
	}, (err, results) => {
		if (err)
			return res.json({error: err})
		var took = new Date() - start
		res.json({results: results, took: took})
	})
})

var port = 8000
app.listen(port, () => {console.log("listening on " + port)})

Všechno spustíme

node --debug index.js

node-inspector

otevřeme v prohlížeči adresu co nám vypíše node-inspector (něco jako http://localhost:8080/?ws=localhost:8080&port=5858)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment