Geddy не имеет точек останова - PullRequest
6 голосов
/ 06 марта 2012

Я оцениваю инфраструктуру Geddy MVC для node.js, и я вижу странную проблему - ни одна из моих точек останова не ударилась при отладке.

Я использую WebStorm для запуска node.js в режиме отладки.

Я не знаю, как заставить Geddy запускаться в режиме отладки с помощью команды CLI, поэтому у меня есть файл начальной загрузки, который я использую, который выглядит следующим образом:

console.log("Starting server...")
var geddy = require("geddy/bin/cli")
console.log("Server started.")

Я установил точку останова на всех трех строках, и ударил только последнюю console.log, так что, по крайней мере, я знаю, что точки останова и отладка работают правильно.

Geddy внутренне require() - это мои контроллеры, у которых также есть точки останова, установленные в нескольких местах. Они никогда не попадают в цель, но контроллеры работают правильно, и HTTP-запросы также обрабатываются должным образом.

Есть ли причина, по которой точки останова не будут достигнуты в Geddy? Есть что-то еще, что я могу сделать?

Ответы [ 4 ]

3 голосов
/ 16 октября 2012

Есть Отладка WikiPage с некоторой информацией о том, как отлаживать Гедди.

1 голос
/ 06 января 2013

Чтобы ответить на вопрос специально для отладки Jetbrains WebStorm или IntelliJ (с плагином Node.js):

Короче говоря, настройте свое приложение так, как если бы вы собирались развернуть его на Heroku или Nodejitsu.

package.json

{
  "name": "geddy_todo",
  "version": "0.0.1",
  "dependencies": {
    "geddy": "0.6.x"
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

Далее у вас есть два варианта

Вариант 1. Создайте app.js, который запускает geddy.

app.js

var geddy = require('geddy');

geddy.start({
  environment: process.env.GEDDY_ENVIRONMENT || 'production'
});

В WebStorm / IntelliJ в своей конфигурации Run / Debug для приложения Node.js обязательно добавьте переменную среды GEDDY_ENVIRONMENT и установите для нее значение «development» или «test», если вы хотите запускать свои тесты.

Вариант 2 Вызов Geddy-клиента напрямую

@ MiguelMadero упомянул эту идею в комментариях. Установите WS / IJ для запуска следующего

path/to/geddy/bin/cli.js 
1 голос
/ 20 апреля 2012

Гедди в настоящее время не поддерживает отладку, но мы хотели бы добавить это как функцию.

1 голос
/ 16 марта 2012

Мне не удалось это проверить, но я думаю, что проблема связана с тем, что cluster порождает новые процессы, но отладчик не знает о них. Я не нашел способа присоединить отладчик к новым процессам, и я даже не уверен, что их можно запустить с открытым портом отладки.

Гедди использует cluster, поэтому он наследует эту проблему.

В этой теме упоминается возможное решение: ( Как включить --debug для node.js при запуске GeddyJS ), но это не помогло мне.

...