Я пытаюсь отправить этот json в конечную точку экспресса узла
{
"data": [
[
"Audit Territory",
"LA Antelope Valley",
"LA Central",
"LA East San Gabriel",
"LA San Fernando Valley",
"LA West",
"LA West San Gabriel",
"OR Inland, Coastal South",
"OR West",
"RV Central",
"RV Coachella Valley",
"RV South, Central",
"SB High Desert",
"Unassigned"
],
[
"Auditor Name",
"Jeanna Bonds",
"Dawn Wiley",
"Janet Cortez",
"Benjamin Sally",
"Margie Watkins",
"Jennifer Perich",
"Tami Anderson",
"Christy Brant",
"Brian Lopiccolo",
"Kristina Clark",
"Tina Chester",
"Ira Brown",
" Unassigned"
],
[
"Not Started",
20,
13,
24,
25,
24,
52,
117,
33,
48,
54,
44,
69,
2
],
[
"In Progress",
1,
2,
0,
1,
1,
1,
1,
0,
0,
0,
18,
0,
0
],
[
"Could Not Complete",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
[
"Ready for Review",
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
4,
0,
0
],
[
"Needs More Research",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
[
"Approved",
1,
0,
0,
1,
1,
0,
2,
0,
1,
1,
3,
3,
0
]
],
"colWidths": [
25,
25,
25,
25,
30,
30,
30,
25
],
"colStyles": [
{},
{},
{
"horizontalAlignment": "center"
},
{
"horizontalAlignment": "center"
},
{
"horizontalAlignment": "center"
},
{
"horizontalAlignment": "center"
},
{
"horizontalAlignment": "center"
},
{
"horizontalAlignment": "center"
}
]
}
Он не анализируется правильно в экспрессе, и я пытаюсь выяснить, что нужно.Я попробовал несколько разных вещей.
Я установил парсер тела и применил его глобально
app.use (bodyParser.urlencoded ({extended: true}))
это ничего не изменило.
* POST от клиента
const _fetch = model => {
return fetch(`http://0.0.0.0:9000/create-excels`, {
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
body: JSON.stringify(model)
}).then(statusHelper).then(response => response.json())
}
Я попытался настроить модель, которая была автоматически сгенерирована для этого API.
const createExcelSchema = new Schema({
data: {
type: [[]] // Array
},
colWidths: {
type: Array
},
colStyles: {
type: [{}] // Array
}
}, {
timestamps: true,
toJSON: {
virtuals: true,
transform: (obj, ret) => { delete ret._id }
}
})
Это повлияло на результат, но не помоглопроблема.Вот результат, который я получаю
{
"data": [
[
"Audit Territory",
"LA Antelope Valley",
"LA Central",
"LA East San Gabriel",
"LA San Fernando Valley",
"LA West",
"LA West San Gabriel",
[
"OR Inland",
"Coastal South"
],
"OR West",
"RV Central",
"RV Coachella Valley",
[
"RV South",
"Central"
],
"SB High Desert",
"Unassigned"
],
[
"Auditor Name",
"Jeanna Bonds",
"Dawn Wiley",
"Janet Cortez",
"Benjamin Sally",
"Margie Watkins",
"Jennifer Perich",
"Tami Anderson",
"Christy Brant",
"Brian Lopiccolo",
"Kristina Clark",
"Tina Chester",
"Ira Brown",
"Unassigned"
],
[
"Not Started",
"20",
"13",
"24",
"25",
"24",
"52",
"117",
"33",
"48",
"54",
"44",
"69",
"2"
],
[
"In Progress",
"1",
"2",
"0",
"1",
"1",
"1",
"1",
"0",
"0",
"0",
"18",
"0",
"0"
],
[
"Could Not Complete",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
[
"Ready for Review",
"2",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"4",
"0",
"0"
],
[
"Needs More Research",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
[
"Approved",
"1",
"0",
"0",
"1",
"1",
"0",
"2",
"0",
"1",
"1",
"3",
"3",
"0"
]
],
"colWidths": "25,25,25,25,30,30,30,25",
"colStyles": [
"[object Object]",
"[object Object]",
"[object Object]",
"[object Object]",
"[object Object]",
"[object Object]",
"[object Object]",
"[object Object]"
]
}
контроллер
export const create = ({ bodymen: { body } }, res, next) => {
_createExcel(body.data, body.colWidths, body.colStyles).then(result => success(res.status(201).json(result)))
.catch(next)
}
маршрут
import { Router } from 'express'
import { middleware as body } from 'bodymen'
import { create } from './controller'
import { schema } from './model'
export CreateExcel, { schema } from './model'
const router = new Router()
const { data, colWidths, colStyles } = schema.tree
router.post('/',
body({ data, colWidths, colStyles }),
create)
модель
import mongoose, { Schema } from 'mongoose'
const createExcelSchema = new Schema({
data: {
type: [[]]
},
colWidths: {
type: Array
},
colStyles: {
type: [{}]
}
}, {
timestamps: true,
toJSON: {
virtuals: true,
transform: (obj, ret) => { delete ret._id }
}
})
createExcelSchema.methods = {
view (full) {
const view = {
// simple view
id: this.id,
data: this.data,
colWidths: this.colWidths,
colStyles: this.colStyles,
createdAt: this.createdAt,
updatedAt: this.updatedAt
}
return full ? {
...view
// add properties for a full view
} : view
}
}
const model = mongoose.model('CreateExcel', createExcelSchema)
export const schema = model.schema
export default model