sails-postgresql ReferenceError: Пользователь не определен

Я пытаюсь настроить соединение postgresql с sails.js. Вот мой конфиг:

api / models / User.js:

module.exports = {

tableName: 'user',
meta: {
    schemaName: 'public'
},
identity:'sails',
connection: 'postgreSQL',

attributes: {
username:{
    type:'string',
    required:true,
},
password:{
    type:'string',
    required:true,
},
email:{
    type:'email',
    required:true,
},
}};

config / connections.js:

module.exports.connections = {
postgreSQL: {
      adapter: 'sails-postgresql',
      host: '127.0.0.1',
      user: 'sails', // optional
      password: 'pass', // optional
      database: 'sails', //optional
      port:5433,
    }
}

config / models.js

module.exports.models = {
  connection: 'postgreSQL',
  migrate: 'safe',    
};

API / контроллеры / UserController.js

module.exports = {
    create: function(req,res){
        User.create(req.allParams()).exec(function createdUser(err, created){
            if(created != undefined){
                sails.log('Utilisateur créé')
                res.view('User/user_created');
                sails.log(req.allParams())
            }
            else
            {
                sails.log('Pas d\'utilisateur créé')
                sails.log(req.allParams())
            }

        });
    },

    search: function(req,res){
    sails.log("Recherche saisie:")
    sails.log(req.allParams())
    if(req.allParams() == undefined){
        sails.log("Pas d'utilisateur recherché");
    }
    else {
        User.find({username : {contains: req.allParams().username}}).exec(function (err, userFound){
        sails.log('utilisateur trouvé');
        sails.log(userFound);
        return res.json(userFound);
    })
    }
    }
};

Когда я поднимаю свое приложение, я отправляю следующий запрос (который отправляет сообщение в качестве параметров для действия «создать» из UserController):

http://127.0.0.1:1337/User/[email protected]

У меня ошибка:

Однако все работает отлично без подключения к postgresSQL ... Кто-нибудь знает, как это решить?

Заранее благодарю за помощь.

РЕДАКТИРОВАТЬ: я изменил путь к файлам, чтобы получить хорошие

Похоже, вам не хватает файла модели для вашей таблицы User.


person Pierre HARDY    schedule 16.08.2017    source источник


Ответы (2)


Он должен быть в api/models/User.js

Думаю, вам просто нужно переместить файл api/controllers/User.js, чтобы он заработал.

Также переименовал вашу папку api/controller в api/controllers

Паруса основаны на соглашениях, если вы положите вещи в нужное место, они будут работать без суеты. Итак, ваши файлы модели должны войти в

Если оба этих файла присутствуют, он создаст таблицу и объявит для вас глобальную переменную TABLENAME.

api/models/TABLENAME.js api/controllers/TABLENAMEController.js

Собственно, в моем первом посте пути к файлам были неправильными. Я установил нужные в своем приложении.

person Mikkel    schedule 18.08.2017

Проблема была в файле config/models.js. Я пытался запустить приложение в режиме safe для своего подключения. Однако при первом запуске это не работает. Хороший способ - использовать режим alter или drop для вашего соединения, чтобы создать таблицы, соответствующие вашим моделям, во время первого запуска.

Хороший config/models.js файл:

Мне также пришлось изменить мою модель, чтобы она выглядела так:

module.exports.models = {
    connection: 'postgreSQL',
    migrate: 'alter',  // you can also use 'drop' 
};

ошибка: отправка ответа 500 («Ошибка сервера»): ReferenceError: Пользователь не определен в Object.create (C: \ Users \ Pierre \ Documents \ Geek \ SAILS \ hikout \ api \ controllers \ UserController.js: 10: 3) в оболочке (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ lodash \ lib \ index.js: 3250: 19) в routeTargetFnWrapper (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ router \ bind.js: 181: 5) при обратных вызовах (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 164: 37) в параметре (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 138: 11) на проходе ( C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 145: 5) в nextRoute (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 100: 7) при обратных вызовах (C: \ Users \ Pierre \ AppData \ Roamin g \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 167: 11) в alwaysAllow (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ hooks \ policy \ index.js: 224: 11) в routeTargetFnWrapper (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ router \ bind.js: 181: 5) в обратных вызовах (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 164: 37) в параметре (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 138: 11) на проходе (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 145: 5) в nextRoute (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 100: 7) в обратные вызовы (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 167: 11) в module.exports (C: \ Users \ Pier re \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ hooks \ cors \ clear-headers.js: 14: 3) в routeTargetFnWrapper (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ router \ bind.js: 181: 5) при обратных вызовах (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 164: 37) в param (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 138: 11) на проходе (C: \ Users \ Pierre \ AppData \ Роуминг \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js: 145: 5) в nextRoute (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @ sailshq \ express \ lib \ router \ index.js: 100: 7) при обратных вызовах (C: \ Users \ Pierre \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ @sailshq \ express \ lib \ router \ index.js : 167: 11)

module.exports = {
    attributes: {
        username: {
            type: 'string',
            required: true,
        },
        email: {
            type:'string',
            required:true,
        },
        password: {
            type: 'string',
            required: true,
        },
    }
};
person Pierre HARDY    schedule 21.08.2017