Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

errors Models.js #5

Closed
kratkar opened this issue Mar 3, 2011 · 5 comments
Closed

errors Models.js #5

kratkar opened this issue Mar 3, 2011 · 5 comments

Comments

@kratkar
Copy link

kratkar commented Mar 3, 2011

  1. Models.js : fs.readFileSync(app_root + '/config/database.json','utf-8')) Кодировка иначе Buffer. https://github.com/1602/express-on-railway/blob/master/lib/models.js#L125
  2. Models.js:
    https://github.com/1602/express-on-railway/blob/master/lib/models.js#L125
    Что если заменить на
    https://gist.github.com/852634

По-моему, если будет ошибка в файле fileModel, то выдаст в консоль путь к файлу.
А так запустил под 0.4.0 и вроде работает, но сгенерированная model выглядит по другому(README.md нет описания), поэтому model не проверял))
var User = describe("User", function () {

});

И еще вопрос, на нём можно будет писать уже проекты?

@anatoliychakkaev
Copy link
Collaborator

README.md поправлю, спасибо за напоминание.
По поводу предложенного кода. Изначально было именно так, и дебажить было удобно, потому что имя файла который эвалится указывался, однако это вызвало некоторую коллизию, когда в проекте несколько моделей, которые могут друг на друга ссылаться. Пример: есть model_a.js, описывающий ModelA, и model_b.js описывающий ModelB. Если в модели ModelA обратиться к ModelB, тогда произойдет ошибка, потому что ModelB, еще не определен. Поэтому сейчас все модели сначала конкатенируются в один сплошной код, а затем запускаются. Я пока не нашел обходного решения, чтобы не потерять удобства в отладке и чтобы при этом работало все.

@kratkar
Copy link
Author

kratkar commented Mar 3, 2011

Я правда еще не разобрался, как модели работают, но если в собранном исходнике последовательно определено - ModelA потом ModelB. А в ModeA идёт обращение к ModelB, то он undefined вроде и так.

@anatoliychakkaev
Copy link
Collaborator

На момент описание undefined, но при дальнейшем использовании определен (но только в случае слияния исходников). В противном случае он не будет доступен никогда.

@kratkar
Copy link
Author

kratkar commented Mar 3, 2011

Если запуск скрипта и ошибки обрабатывается как в eval, то можно исходники обернуть в try{}catch. Чтоб ловить ошибки. Хотя бы в development

try{
<%= source %>
}
catch(e){
console.log('Errors' + e.name +' in file <%= filename%>')
}

А потом уже объединить.
Да ещё, чтоб запустить в node 0.4.0 я еще убрал Script. В новом через createScript

@anatoliychakkaev
Copy link
Collaborator

К сожалению, в предложенном варианте ошибка будет происходить именно из-за разбиения исходников на части.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants