Я создаю курьерскую систему, в которой одна франшиза должна отправить пакет другой франшизе.Пользователь вводит название франшизы, которую должен получить пакет, и я получаю ID и сохраняю в «dispatchedTo».Пока я получаю идентификатор «dispatchedBy», из Angular localStroage, где я сохранил его, когда пользователь (Franchise) вошел в систему.Но findById, findOne или даже find не работают при применении к атрибутам, извлеченным из localStorage.
//This Part Does not return franchise... franchise object is empty
let franchise = await Franchise.findById(req.body.dispatchedBy);
if(!franchise){
return res.json({error: {message: "Origin Not Found!"},});
}
//This part work... franchise1 is the right object
let franchise1 = await Franchise.findById(req.body.dispatchedTo);
if(!franchise1){
return res.json({error: {message: "Destination Not Found!"},});
}
MongoDB сохраняет запись с идентификатором обоих 'dispatchedBy' & 'dispatchedTo': {"_id": "5c1fdcd0dc5ce60e8c856ca1" "dispatchedBy": "5c1c06c2f458b617506f1ac1", "dispatchedTo": "5c1de40419975e0a6c224d6a", "dispatchedOn": "2018-12-23T19: 03: 50.997Z", "receivedOn":" 2018-12-23T19: 03: 50.997Z"," packet ":" 5c1ea84ca706ba112c9dbe9e "," dispatchStatus ":" DisJanu "," user ":" Sohail "," __v ": 0}
Однако, когда я применяю populate, 'dispatchedBy' возвращает ноль.
router.get('/', async(req, res)=>{
const dispatch = await Dispatch.find().sort('dispatchedOn').populate('packet', 'packetNumber _id').populate('dispatchedBy', 'title _id').populate('dispatchedTo', 'title _id');
return res.json(dispatch);
});
Возможно ли исправить?