Невозможно прочитать свойство 'findAll' из неопределенного продолжения - PullRequest
0 голосов
/ 19 июня 2019

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

Вот мой код. https://github.com/Picks42/express-test Пожалуйста, просмотрите этот файл https://github.com/Picks42/express-test/blob/master/models/user.js

Тогда просмотрите этот https://github.com/Picks42/express-test/blob/master/controller/test.js

Дайте мне знать, в чем проблема.

Ответы [ 2 ]

0 голосов
/ 21 июня 2019
// all the models using your index.js loader
const models = require('../models');
// the user model, note the capital User since 
const M_Bank = models.User;

exports.getTest = function(req,res){
    return M_Bank
    .findAll()
    // don't use M_Bank here since you are getting an array of Instances of the Model
    .then(users => res.status(200).send(users))
    .catch((error) => {
      console.log(error.toString());
      res.status(400).send(error)
    });

    /* this will never execute because it is after the return
    exports.index = function (request, response, next) {
        response.json((M_Bank.findAll()));
    };
    */
};

Если у вас есть возможность использовать async/await, это делает код более читабельным.

const models = require('../models');
const M_Bank = models.User;

exports.getTest = async function(req, res) {
  try {
    const users = await M_Bank.findAll();
    return res.status(200).send(users);
  } catch (err) {
    console.log(err.toString());
    return res.status(400).send(err);
  }
};
0 голосов
/ 19 июня 2019

Вы должны избавиться от поля .User в 3-й строке. потому что вы экспортировали самого пользователя из файла models/user. Также я рекомендую не связываться с именами переменных. Переменная M_Bank не говорит сама по себе


const M_Bank = require('../models/user');
exports.getTest = function(req,res){
    return M_Bank
    .findAll()
    .then(M_Bank => res.status(200).send(M_Bank))
    .catch((error) => {
      console.log(error.toString());
      res.status(400).send(error)
    });
    exports.index = function (request, response, next) {
        response.json((M_Bank.findAll()));
    };
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...