我正在尝试将此 json 发布到 Node 快速端点
{
"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"
}
]
}
它在express中没有被正确解析,我正在尝试找出需要什么。我尝试了几种不同的方法。
我安装了 body-parser 并在全局范围内应用了它
app.use(bodyParser.urlencoded({ 扩展: 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]"
]
}
Controller
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
最佳答案
好吧,我假设您没有在 URL 中发布 JSON,这意味着应用
app.use(bodyParser.urlencoded({ ... }))
不会真正帮助你。您最可能想要的是 json将解析 JSON 格式 body
的中间件app.use(bodyParser.json())
关于javascript - 如何将数据发布和解析到 Node express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51029246/