Video 114: The User/Task Relationship
This commit is contained in:
parent
b06a1d3e88
commit
771e9bd0d4
@ -25,3 +25,18 @@ app.use(taskRouter)
|
||||
app.listen(port, () => {
|
||||
console.log('Server is up on port ' + port)
|
||||
})
|
||||
|
||||
const Task = require('./models/task')
|
||||
const User = require('./models/user')
|
||||
|
||||
const main = async () => {
|
||||
// const task = await Task.findById('5f0f845f55f3ad018f2305fc')
|
||||
// await task.populate('owner').execPopulate()
|
||||
// console.log(task.owner)
|
||||
|
||||
const user = await User.findById('5f0f838e040ee20177d799f3')
|
||||
await user.populate('tasks').execPopulate()
|
||||
console.log(user.tasks)
|
||||
}
|
||||
|
||||
main()
|
||||
|
@ -9,6 +9,11 @@ const Task = mongoose.model('Task', {
|
||||
completed: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
owner: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
required: true,
|
||||
ref: 'User'
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -49,6 +49,12 @@ const userSchema = new mongoose.Schema({
|
||||
}]
|
||||
})
|
||||
|
||||
userSchema.virtual('tasks', {
|
||||
ref: 'Task',
|
||||
localField: '_id',
|
||||
foreignField: 'owner'
|
||||
})
|
||||
|
||||
userSchema.methods.toJSON = function() {
|
||||
const user = this
|
||||
const userObject = user.toObject()
|
||||
|
@ -1,9 +1,13 @@
|
||||
const express = require('express')
|
||||
const Task = require('../models/task')
|
||||
const auth = require('../middleware/auth')
|
||||
const router = new express.Router()
|
||||
|
||||
router.post('/tasks', async (req, res) => {
|
||||
const task = new Task(req.body)
|
||||
router.post('/tasks', auth, async (req, res) => {
|
||||
const task = new Task({
|
||||
...req.body,
|
||||
owner: req.user._id
|
||||
})
|
||||
|
||||
try {
|
||||
await task.save()
|
||||
|
Loading…
Reference in New Issue
Block a user