我正在从我的表单中获取数据到我的 mLab,但它的格式是我不喜欢的。虽然它是这样的
{ '{"email":"ben@benjamin.com","message":"not what i want"}': '' }
更糟糕的是它保存为这个
"data": "{\"{\\\"email\\\":\\\"ben@benjamin.com\\\",\\\"message\\\":\\\"this is ridiculous\\\"}\":\"\"}"
所以它基本上将我的数据设置为一无所有的关键。我求助于将我的架构更改为一个对象,这样我就可以保存一些东西。理想情况下,我想要每条数据的密钥。我希望以后能够访问它。我无法让正文解析器工作,所以我使用 express-formidable 作为中间件。有很多活动部件,如果我改变周围的东西,无论我做什么,我都会使服务器崩溃并出错。好的,这是双方的一些代码。
服务器代码:
var formSchema = new Schema({
data: Object
})
app.use(formidable());
app.post('/contact', function(req,res,next){
console.log(req.fields)
var item = JSON.stringify(req.fields)
var form = new Form({data: item
}).save(function(err,data){
if(err) throw err
if(data) res.json(data)
})
})
客户端代码
submitData(e){
e.preventDefault();
let email = this.state.value;
let msg = this.state.value2;
let data = {
email: email,
message: msg
}
fetch('/contact', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: JSON.stringify(data)
})
.then((response) => response.json())
.then((responseData) => {
console.log("Response:",responseData);
this.setState({
value: "",
value2: "",
status: "THANKS FOR CONTACTING ME I'LL BE IN TOUCH SOON"
})
}).catch((error) => {
console.log(error)
})
}
这让我发疯。理想情况下,我想做正确的事。或者以某种方式访问该对象并获取电子邮件和消息键,然后更改我的架构。然后我可以在我的新 Form(... 部分