У меня изначально был JSON файл, который выглядел следующим образом ...
["blabla", "yadayada", "stack", "overflow", ......]
По запросу POST я помещал одну строку «STRING» в массив строк выше.
Однако при развертывании в Heroku я узнал, что fs write не работает, поэтому я решил использовать MongoDB Atlas .
Используя MongoDB Atlas и Mon goose, я написал следующий код, но результат не тот, который я хочу ...
В настоящее время объект помещается в массив:
{ firstPlace: [ 'blabla' ], _id: 5e7ec0756e5e8d3b7646f602, __v: 0 }
Я просто хочу добавить sh "блабла" в уже существующий массив. Всегда ли MongoDb создает _id / _v?
Рекомендация. js файл (Модель)
const mongoose = require ('mongoose')
const recommendationSchema = mongoose.Schema({
firstPlace: [String]
})
module.exports = mongoose.model('Recommendation', recommendationSchema)
Рекомендация. js файл (маршрут)
const express = require("express");
const fs = require ('fs')
const router = express.Router();
const Recommendation = require ('../models/recommendation')
const mongoose = require('mongoose')
router.get("/", (_, res) => {
Recommendation.find(function(err, Recommendation){
res.json(Recommendation)
})
});
router.post("/", (req, res) => {
const recommendation = new Recommendation();
recommendation.firstPlace.push(req.body.firstPlace)
recommendation.save().then(result => {
console.log(result)
res.status(201).json({
message:"POST request to /recommendation",
createdRec: result
})
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
})
});
});
module.exports = router;
Спасибо за вашу помощь.