2014-11-10 2 views
0

Я получил эту ошибку после попытки увязывания моделей (один-к-одному):Почему sails.js не работает при запуске?

Temporarily using `sails.config.models.migrate="safe"... 
(press CTRL+C to cancel-- continuing lift automatically in 0.5 seconds...) 

C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:168 
    attr.type = type.toLowerCase(); 
        ^
TypeError: Cannot call method 'toLowerCase' of undefined 
at Schema.objectAttribute (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:168:26) 
at C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:58:29 
at Array.forEach (native) 
at Schema.initialize (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:56:22) 
at Core._initialize (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\index.js:89:16) 
at module.exports (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\index.js:50:20) 
at module.exports (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\collection\index.js:44:8) 
at new child (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\utils\extend.js:17:39) 
at initialize (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\collection\loader.js:37:10) 
at loadCollection (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline.js:111:29) 

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

OS: Windows 8.1 
Sails.JS: v0.10.5 (fresh from npm) 

модель Пользователь:

module.exports = { 
    connection: 'mysql', 

    attributes: { 
     id: {primaryKey: true}, 
     phone: { 
      type: 'string', 
      unique: true, 
      required: true 
     }, 
     role: {type: 'string'}, 
     name: {type: 'string'}, 
     city: {type: 'string'} 
    } 
}; 

модель драйвера:

module.exports = { 
    connection: 'mongo', 

    attributes: { 
     id: {primaryKey: true}, 
     user: {model: 'User'}, 
     rate: { 
      type: 'decimal', 
      required: true 
     }, 
     cars: { 
      dominant: true, 
      collection: 'Car' 
     } 
    } 
}; 

Модель автомобиля:

module.exports = { 
    atributes: { 
     number: { 
      type: 'string', 
      required: true 
     }, 
     color: { 
      type: 'string', 
      required: true 
     } 
    } 
}; 

ответ

2

Как я вижу здесь проблема не связана с этим вопросом.

Эта проблема была закрыта год назад. Проблема с вашим атрибутом id. Вы не задали для него тип. И ватерлиния не могла его определить.

Попробуйте удалить атрибут id вообще. ватерлиния должна автоматически добавлять его ко всем вашим моделям (для монго). Если нет, вам придется установить тип в свой атрибут id.

+0

Thanx! Это решило проблему запуска, но вернулось к первоначальной проблеме с привязкой моделей «один-к-одному» – alex025

Смежные вопросы