, поэтому я создаю Restful API с помощью nodeJS, Postgres, а также сиквелизирую и выражаю как основные зависимости.
Я добавляю слой, который будет извлекать все данные о заказах из базы данных по запросу /get
на моем API. У меня есть 2 основных файла для выполнения работы и маршрутизатор, который, я думаю, не имеет отношения к этой проблеме, поэтому я не буду его включать:
// services/orders.js
import { Order } from '../models'
const test = () => {
Order.findAll().then(data => {
console.log(data)
})
};
Кажется, это работает нормально, поскольку выводит массив, содержащий список элементов, которые я вводил вручную в базу данных. Это выглядит следующим образом:
[ order {
dataValues:
{ id: 0,
title: 'blue orange',
date: 2018-11-14T05:20:11.735Z,
user_id: '8753iuufsd98',
createdat: 2018-11-14T05:20:16.831Z,
updatedat: 2018-11-14T05:20:20.072Z },
_previousDataValues:
{ id: 0,
title: 'blue orange',
date: 2018-11-14T05:20:11.735Z,
user_id: '8753iuufsd98',
createdat: 2018-11-14T05:20:16.831Z,
updatedat: 2018-11-14T05:20:20.072Z },
_changed: {},
_modelOptions:
{ timestamps: true,
validate: {},
freezeTableName: false,
underscored: false,
underscoredAll: false,
paranoid: false,
rejectOnEmpty: false,
whereCollection: null,
schema: 'us',
schemaDelimiter: '',
defaultScope: {},
scopes: [],
indexes: [],
name: [Object],
omitNull: false,
createdAt: 'createdat',
updatedAt: 'updatedat',
sequelize: [Object],
hooks: {},
uniqueKeys: {} },
_options:
{ isNewRecord: false,
_schema: 'us',
_schemaDelimiter: '',
raw: true,
attributes: [Array] },
__eagerlyLoadedAssociations: [],
isNewRecord: false },
order {
dataValues:
{ id: 1,
title: 'black blue',
date: 2018-11-14T07:47:09.743Z,
user_id: 'lksdfjsldjfl',
createdat: 2018-11-14T07:47:12.698Z,
updatedat: 2018-11-14T07:47:15.097Z },
_previousDataValues:
{ id: 1,
title: 'black blue',
date: 2018-11-14T07:47:09.743Z,
user_id: 'lksdfjsldjfl',
createdat: 2018-11-14T07:47:12.698Z,
updatedat: 2018-11-14T07:47:15.097Z },
_changed: {},
_modelOptions:
{ timestamps: true,
validate: {},
freezeTableName: false,
underscored: false,
underscoredAll: false,
paranoid: false,
rejectOnEmpty: false,
whereCollection: null,
schema: 'us',
schemaDelimiter: '',
defaultScope: {},
scopes: [],
indexes: [],
name: [Object],
omitNull: false,
createdAt: 'createdat',
updatedAt: 'updatedat',
sequelize: [Object],
hooks: {},
uniqueKeys: {} },
_options:
{ isNewRecord: false,
_schema: 'us',
_schemaDelimiter: '',
raw: true,
attributes: [Array] },
__eagerlyLoadedAssociations: [],
isNewRecord: false },
order {
dataValues:
{ id: 2,
title: 'ornage yellow',
date: 2018-11-14T07:47:31.768Z,
user_id: 'hfjkseiurr',
createdat: 2018-11-14T07:47:34.337Z,
updatedat: 2018-11-14T07:47:36.626Z },
_previousDataValues:
{ id: 2,
title: 'ornage yellow',
date: 2018-11-14T07:47:31.768Z,
user_id: 'hfjkseiurr',
createdat: 2018-11-14T07:47:34.337Z,
updatedat: 2018-11-14T07:47:36.626Z },
_changed: {},
_modelOptions:
{ timestamps: true,
validate: {},
freezeTableName: false,
underscored: false,
underscoredAll: false,
paranoid: false,
rejectOnEmpty: false,
whereCollection: null,
schema: 'us',
schemaDelimiter: '',
defaultScope: {},
scopes: [],
indexes: [],
name: [Object],
omitNull: false,
createdAt: 'createdat',
updatedAt: 'updatedat',
sequelize: [Object],
hooks: {},
uniqueKeys: {} },
_options:
{ isNewRecord: false,
_schema: 'us',
_schemaDelimiter: '',
raw: true,
attributes: [Array] },
__eagerlyLoadedAssociations: [],
isNewRecord: false } ]
Теперь у меня есть контроллер с функцией getOrders
, которая выглядит следующим образом и предполагает возвращение объекта JSON, выданного services/orders.js
:
// controllers/orders.js
function getOrders(req, res) {
return res.send({
data : orderServices.test()
})
}
Проблема здесь в том, что при получении запроса с почтальоном, controllers/orders.js
возвращает это:
//output on postman ...
{}
пустой объект .... Мой вопрос здесь заключается в том, как получить данные, которые были правильно обработаны services/orders.js
до controllers/orders.js
, чтобы express мог отображать их через res.send()
, а также, почему результат запрос не просто останавливается на:
{ id: 0,
title: 'blue orange',
date: 2018-11-14T05:20:11.735Z,
user_id: '8753iuufsd98',
createdat: 2018-11-14T05:20:16.831Z,
updatedat: 2018-11-14T05:20:20.072Z },
вместо этого длинного массива?
Извините, если мой вопрос длинный. Я старался сделать как можно проще и не сбивать с толку.