我在嘗試著:
1)。檢查 bookId 是否存在(此 bookId 用于存盤在 book 模塊中的 google 圖書 api)。
2)。如果這本書還沒有在資料庫中,那么保存它。
3)。將 id (mongoose.Types.ObjectId) 添加到“books”欄位陣列中的用戶(模塊)。
目前我正在用靜態測驗測驗“推送”,看起來它根本不執行“推送”。我是初學者,所以非常感謝任何幫助。
books: {
type: Array,
of: String
}
bookRouter.post('/book/:id', (req, res, next) => {
const bookId = req.params.id
axios
.get(`https://www.googleapis.com/books/v1/volumes/${bookId}`)
.then((result) => {
Book.findOne({ bookId: bookId })
.then((book) => {
if (!book) {
const { title, authors } = result.data.volumeInfo;
Book.create({
title, bookId, authors
})
}
})
.then(() => {
console.log(req.user.id);
User.findByIdAndUpdate(req.user.id, { $push: { books: "testing push array" } })
res.send('success');
})
})
.catch((error) => {
console.log(error);
next(error);
});
});
uj5u.com熱心網友回復:
Book.create
是異步的,你應該等待它。你可以做
Book.create({}).then(newBook=>console.log(newBook)
將書籍推送到用戶書籍陣列的 .then 應該鏈接到 Book.create
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/470268.html
上一篇:Mongodb用比率比較兩個欄位
下一篇:MongoDB查找嵌套屬性