паруса 0.9.8 не работают, когда создаешь контроллер и поднимаешь его

У меня проблема с парусами 0.9.8. Я уже установил паруса на свой Mac, а также лифт, он работает хорошо, но когда я начинаю генерировать контроллер и модель, а затем снова запускаю команду подъема, он показывает какую-то ошибку, например:

$sails lift

/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:68
    var schemaAttributes = this.waterline.schema[this.identity].attributes;
                                                ^
TypeError: Cannot read property 'user' of undefined
    at _.extend._initialize (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:68:49)
    at module.exports (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:45:8)
    at module.exports (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/collection/index.js:57:8)
    at new child (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/utils/extend.js:17:39)
    at instantiateCollection (/usr/local/lib/node_modules/sails/lib/hooks/orm/index.js:174:25)
    at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:108:13
    at Array.forEach (native)
    at _each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:32:24)
    at Object.async.each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:107:9)
    at Hook.startORM (/usr/local/lib/node_modules/sails/lib/hooks/orm/index.js:164:10)
    at Array.bound [as 1] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
    at listener (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:462:46)
    at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:416:17
    at Array.forEach (native)
    at _each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:32:24)
    at Object.taskComplete (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:415:13)
    at processImmediate [as _immediateCallback] (timers.js:330:15)

person user3156478    schedule 24.01.2014    source источник


Ответы (3)


Судя по ошибке, которую вы получаете от Waterline, это похоже на проблему с вашими глобальными зависимостями Sails. Это не та версия Waterline for Sails 0.9.8. Это может произойти, если вы пробовали другие версии Sails; кеш npm немного запутался. Чтобы исправить это, сделайте следующее:

  1. sudo npm uninstall sails -g
  2. npm cache clear
  3. sudo npm install sails -g

Это переустановит Sails со всеми правильными зависимостями. Вы не должны менять свой проект.

person sgress454    schedule 24.01.2014

Возможно, вам просто не хватает некоторых модулей. Например, если базовые зависимости установлены глобально с чем-то вроде sudo npm install sails -g, вновь созданное приложение Sails поднимется без проблем, но как только вы начнете добавлять некоторые функции, ему могут потребоваться другие модули (возможно, связанные с адаптером БД в вашем случае) .

Короче говоря, просто запустите npm install из папки вашего проекта, он создаст подпапку node_modules и установит в нее зависимости проекта.

person bredikhin    schedule 24.01.2014
comment
Вы правы, но я думаю из-за того, что моя модель проверена по ватерлинии. Так как я могу это исправить? - person user3156478; 24.01.2014
comment
Вы пытались запустить npm install из папки проекта? Что это говорит? - person bredikhin; 24.01.2014

Я видел эту проблему сегодня. Глобальная переустановка Sails мне не помогла, потому что у меня было установлено две копии Sails. Удаление локально установленной копии вынудило Node использовать глобально установленную копию Sails и все ее зависимости, которые все исправили.

person Erin Ishimoticha    schedule 02.02.2014