#node.js #sequelize.js
Вопрос:
Поэтому я использую nodejs и секвенирую, и проблема в том, что при попытке получить значения из бд все отображается в виде строки.
let merchant_data = await Products.findAll({where:{
product_category_id:pr_category_id,
global_delivery:is_global_delivery
},
include:[
{model:Shops,
where:{is_home_delivery:is_home_delivery,
},
],
}).then(function (result) {
return result
}).catch(function (e) {
console.log(e)
return 0
})
Тело ответа, которое я получаю, выглядит следующим образом:
{
"message": "done",
"data": [
{
"id": "9095",
"user_id": "21",
"product_name": "Test Product",
"product_desc": "Testing",
"product_category_id": "5",
"product_sub_category_id": "32",
"min_order_qty": "1",
"business_margin": "5",
"discount_percentage": "17",
"product_cities": "",
"color_size_variant": "",
"shop": {
"user_id": "21",
"name": "Jyotish supermarket",
"address1": "shop no. 7 ",
"address2": "Near signature store",
"is_home_delivery": true
}
}
]
}
Ожидаемый результат выглядит следующим образом
{
"message": "done",
"data": [
{
"id": 9095,
"user_id": 21,
"product_name": "Test Product",
"product_desc": "Testing",
"product_category_id": 5,
"product_sub_category_id": 32,
"min_order_qty": 1,
"business_margin": 5,
"discount_percentage": 17,
"product_cities": "",
"color_size_variant": "",
"shop": {
"user_id": 21,
"name": "Jyotish supermarket",
"address1": "shop no. 7 ",
"address2": "Near signature store",
"is_home_delivery": true
}
}
]
}
Это модель продукта :
const Products = sequelize.define('products', {
идентификатор: {
тип: типы данных.BIGINT,
автоИнкремент: верно,
основной ключ: верно
},
user_id:{
type: DataTypes.BIGINT,
}, product_images: {
type: Sequelize.TEXT,
}, image_url: {
type: Sequelize.TEXT,
},
product_name: {
type: Sequelize.TEXT,
},
product_desc: {
type: Sequelize.TEXT,
},
product_category_id: {
type:Sequelize.TEXT
},
product_sub_category_id: {
type:Sequelize.TEXT
},
min_order_qty: {
type:Sequelize.TEXT
},
business_margin: {
type:Sequelize.TEXT
},
discount_percentage: {
type:Sequelize.TEXT
},
origin_from: {
type:Sequelize.TEXT
},
stock: {
type:Sequelize.TEXT
},
presence: {
type:Sequelize.BOOLEAN,
defaultValue: true
},
measurement_unit:{
type:Sequelize.TEXT
},
},
Итак, дело в том ,что идентификатор должен быть в формате int, однако в моем ответе он отображается как строка. Это одинаково для всех целых значений.
Не знаю, почему все переходит в строковый формат
Комментарии:
1. Вам действительно нужно опубликовать соответствующий фрагмент кода, который загружает данные из БД и отправляет их на сервер. Только эти данные не помогут диагностировать проблему.
2. @YuryTarabanko привет,я только что отредактировал код, не могли бы вы проверить сейчас, пожалуйста
3. Не могли бы вы также предоставить определение
Products
модели.4. Попробуйте использовать JSON.parse(результат) вместо голого результата.
5. @YuryTarabanko да, я попробовал JSON.parse (результат), и результатом был неожиданный токен o в JSON в позиции 1, а также я даже попробовал JSON.parse(JSON.stringify(результат)), но без изменений. Я добавил модель продукта ,не могли бы вы, пожалуйста, проверить это тоже,