-1
我試圖將搜索功能添加到我的應用程序。我寫了兩個函數,一個工作,另一個不工作。我試圖找出它,但沒有運氣。無法獲得工作的功能(Node JS,Mongoose)
這是工作職能:
// Add Search Functionility
router.get('/:searchTerm', ensureLoggedIn, (req, res) => {
let searchTerm = req.params.searchTerm;
let regex = new RegExp(searchTerm.replace(/[w]/g, ":a"), 'g');
let loggedUser = req.user.id;
User.findById(loggedUser).exec()
.then(foundUser => {
if (foundUser.role != 'admin') {
if (isNaN(searchTerm)) {
User.findById(loggedUser).populate({path: 'permits', match: {'name': regex, isAuth: true}}).exec()
.then(populatedUser => res.json(populatedUser.permits))
.catch(err => res.send(err));
} else {
User.findById(loggedUser).populate({path: 'permits', match: {'num': regex, isAuth: true}}).exec()
.then(populatedUser => res.json(populatedUser.permits))
.catch(err => res.send(err));
}
} else {
if (isNaN(searchTerm)) {
Permit.find({'name': regex, isAuth: true}).populate('authBy', 'username').sort({date: 'desc'}).exec()
.then(foundPermits => res.json(foundPermits))
.catch(err => res.send(err));
} else {
Permit.find({'num': regex, isAuth: true}).populate('authBy', 'username').sort({date: 'desc'}).exec()
.then(foundPermits => res.json(foundPermits))
.catch(err => res.send(err));
}
}
})
});
這是不工作的功能:
// Add Search Functionility
router.get('/:searchTerm', ensureLoggedIn, (req, res) => {
let searchTerm = req.params.searchTerm;
let regex = new RegExp(searchTerm.replace(/[w]/g, ":a"), 'g');
let loggedUser = req.user.id;
function searchPermitsBy(query) {
User.findById(loggedUser).exec()
.then(foundUser => {
if (foundUser.role != 'admin') {
User.findById(loggedUser).populate({path: 'permits', match: {query: regex, isAuth: true}}).exec()
.then(populatedUser => res.json(populatedUser.permits))
.catch(err => res.send(err));
} else {
Permit.find({query: regex, isAuth: true}).populate('authBy', 'username').sort({date: 'desc'}).exec()
.then(foundPermits => res.json(foundPermits))
.catch(err => res.send(err));
}
})
.catch(err => res.send(err));
}
isNaN(searchTerm) ? searchPermitsBy('name') : searchPermitsBy('num');
});
你能幫我找到問題?謝謝。
https://stackoverflow.com/help/how-to-ask和https://stackoverflow.com/help/mcve – str