Я создаю приложение CRUD с Angular, используя Rest Api и Mongo DB.В моем приложении я отправляю объект Post в остальные интерфейсы Apis, но в запросе указан недействительный Json:
{
'{"_id":"","user":"Maius_XX","content":"asdasfd","lits":13,"shits":2,"comments":{},"timestamp":"Sun Jan 27 2019 21:07:11 GMT 0100 (Mitteleuropäische Normalzeit)"}': ''
}
Я пытался проанализировать тело или отправить другую информацию, но Json по-прежнему недействителен.
Мой угловой код:
createNewPosts(post: Post) {
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
})
};
this._http.post<Post>(this.urlPosts, post, httpOptions)
.subscribe(
res => {
console.log(res);
},
err => {
console.log("Error occured " + err );
}
);
Мой бэкэнд:
router.post('/', (req, res, next) => {
const product = new Product({
_id: new mongoose.Types.ObjectId(),
user: req.body.user,
content: req.body.content,
lits: req.body.lits,
shits: req.body.shits,
comments: req.body.comments,
timestamp: req.body.timestamp
});
console.log(req.body);
product.save().then(result => {
console.log(result);
res.status(201).json({
message: "Handling Post",
createdProduct: result
})
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
});
и:
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Alllow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
if (req.method === 'OPTIONS') {
res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, GET');
return res.status(200).json({});
}
next();
});
app.use('/products', productRoutes);
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
})
app.use((error, req, res, next) => {
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
})
})