创建自定义名为mongoose的文档

时间:2018-06-03 18:45:30

标签: mongoose mongoose-schema

创建我的第一个MEAN堆栈应用程序,对mongodb和mongoose来说非常新,所以我不知道如何提出这个问题,但是我正在尝试创建一个新文档并给它一个用户名设置的自定义名称。我的REST api应该从html主体中检索。

例如,我的猫鼬模型的第一个参数当前是字符串" Item"。我想传递登录到此字段的人的用户名,因为我从中了解了这个字符串" Item"将是创建的文档的名称。

const Item = module.exports = mongoose.model('Item', TodoSchema);

最终我要完成的是创建一个带有多个用户登录的待办事项列表应用程序。每个用户登录都将在mongodb中保存自己的集合,该集合将被命名为该人的用户名。我的应用程序当前设置的方式,无论谁登录到网站,每个人都会看到相同的待办事项列表。但我需要每个人都有自己的清单。

如果有更好的解决方案,我愿意接受任何建议。

list.ts - model

const mongoose = require('mongoose');
const config = require('../config/database');

//Todo schema
const TodoSchema = mongoose.Schema({
  item: {
    type: String
  },
  completed: {
    type: Boolean
  }
});

const Item = module.exports = mongoose.model('Item', TodoSchema);

module.exports.addItem = function(newItem, callback) {
  newItem.save(callback);
}

list.ts - route

const express = require('express');
const router = express.Router();
const config = require('../config/database');
const List = require('../models/list');

//add new item
router.post('/add', (req, res, next) => {
  const username = req.body.username;
  const newItem = new List({
    item: req.body.item,
    completed: false
  });

  List.addItem(username, newItem, (err, user) => {
    if(err) {
      res.json({success: false, msg: 'Failed to add item'});
    } else {
      res.json({success: true, msg: 'New item successfully added'});
    }
  })
});

module.exports = router;

0 个答案:

没有答案