Express. js PUT Запрос не обновляет MongoDB - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над проектом, который по сути является супер-политическим сайтом социальных сетей.

У меня уже есть фрагмент, но у меня есть некоторые проблемы с созданием запроса пут на мой mongodb. По сути, я хочу отправить запрос пут, чтобы обновить значение числового значения c, чтобы иметь возможность иметь одинаковый счетчик в каждом сообщении.

Здесь я пытаюсь отправить запрос пут с указанием c почтовый идентификатор. Я храню идентификатор сообщения в скрытом текстовом поле для ссылки на него. Это формат pug HTML:

input.form-control(type='hidden' value=item.id id='postId' placeholder='' name='postId' required='false')
      form(method='PUT' action='/update/{{post._id}}')
        button(type='submit') Like

Затем в моем роутере. js file Я в основном пытаюсь взять этот идентификатор и установить для поля лайков в схеме Post значение 1 (только для тестирование).

router.put('/update/:id', function (req, res, next) {
    let id = {
      _id: ObjectID(req.params.id)
    };

    Post.update({_id: id}, {$set:{'likes': 1}}, (err, result) => {
      if(err) {
        throw err;
      }
      res.send('user updated sucessfully');
    });
});

Вот моя схема сообщений

var mongoose = require("mongoose");

var PostSchema = new mongoose.Schema({
  postText: {
    type: String,
    unique: false,
    required: true,
    trim: true
  },
  usernameText: {
    type: String,
    unique: false,
    required: true,
    trim: true
  },
  likes:{
    type: Number,
    unique: false,
    required: false
  }
});


var Post = mongoose.model("Posts", PostSchema);
module.exports = Post;

Любая и вся помощь будет принята с благодарностью, спасибо

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020
  1. Вы не можете изменить идентификатор.
  2. Метод PUT не поддерживается напрямую, насколько я знаю. Вам нужен метод переопределения
0 голосов
/ 22 апреля 2020

Вы не можете изменить ObjectId. ObjectId генерируется MongoDB и не может быть изменен пользователем с помощью функций запроса.

Если вы хотите, например, назначить уникальный идентификатор каждому пользователю, то создайте отдельное поле в вашей схеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...