我使用的是ngx,在uploadInput中的数据部分,我传递其他数据:
startUpload(): void {
const event: UploadInput = {
type: 'uploadAll',
url: this.uploadUrl,
method: 'post',
data: this.data,
headers: { 'Authorization': 'Token ' + this.userToken }
};
this.uploadInput.emit(event);
}问题是我传递的数据如下所示
this.data = {
myData: {
isThereData: true
}
}在我的表达式中读取res.body时,我的数据作为对象返回。
router.post('/path', upload.any(), (req, res, next) => {
console.log(req.body) // logs [object, Object]
})在将数据发送到表达式之前,我可以对数据进行紧张处理,但随后我需要将数据内容类型与来自ngx-uploader的数据一起传递,这一点我不知道如何做,甚至可能的话。
我知道我不能传递一个对象,因为UploadInput:
export interface UploadInput {
...
data?: {
[key: string]: string | Blob;
};
...
}还有别的办法吗?
编辑好吧,似乎人们不理解,所以也许我问错了问题。
注:这不是身体解析器的问题。
问题是我的数据包含对象,所以数据以对象对象的形式出现。
我的端点在上面最初的文章中。
当我的数据看起来像这样,我把它给我的ngx上传者:
let data = {
greeting: 'hi',
color: 'green',
car: 'toyota',
}在我的表达式中,当我记录request.body时,数据是完美的。
但当我的数据看起来像这样:
let data = {
greeting: {
hello: 'hi',
goodbye: 'bye'
},
car: {
type: 'toyota,
color: 'green'
}
}在我的表达式中,当我记录request.body时,我的数据以[Object object]的形式返回。
这就是问题所在。现在我可以压缩数据,但是当我通过ngx-uploader传递数据时,express不知道它是JSON,因为ngx-uploader需要传递它的内容类型。但是我传递的是带有一些数据的图像,当更改内容类型时,我会得到其他错误,并且图像停止工作。
因此,问题在于通过ngx-uploader的data属性传递ngx-uploader中的数据。
发布于 2019-03-01 11:33:20
我理解您的关注,但在将数据发送到流时,它会自动将对象转换为字符串。在这里,在这种情况下,第一个深度可以转换为字符串,但当它试图将第二级对象转换为字符串时,它就变成了对象对象。为了使其升级,您需要首先对对象进行紧张化,然后发送它。
有关Cannot convert object to primitive value的更多信息
console.log is for logging strings or simple values
as the docs say, you can format the output, as a json for example console.log("body: %j", req.body)
or, better yet, use console.dir to log the object as it is发布于 2019-02-28 23:13:03
你能试试这段代码吗:
router.post('/path', upload.any(), (req, res, next) => {
res.status(200).json(req.files);
});发布于 2019-03-01 05:14:04
你可以使用身体解析器。
在app.js文件中
var bodyParser =需要量(‘body-解析器’);
app.use(bodyParser.json());
https://stackoverflow.com/questions/54735870
复制相似问题