Я использую стек MEAN и динамически отправляю параметры запроса на конечные точки сервера Nodejs. Мой клиент Контроллер:MEAN Nodejs JSON.parse, передающий данные от клиента к серверу
$http.get('/api/things',{params:{query:query}}).then(response => {
this.awesomeThings = response.data;
socket.syncUpdates('thing', this.awesomeThings);
});
, где запрос представляет собой значение, вводят в контроллер. Это функция контроллера сервера (который работает):
export function index(req, res) {
var query = req.query.query && JSON.parse(req.query.query)
Thing.find(query).sort({_id:-1}).limit(20).execAsync()
.then(respondWithResult(res))
.catch(handleError(res));
}
Вышеперечисленные работы, но я пытаюсь понять линии
var query = req.query.query && JSON.parse(req.query.query)
, как я никогда не видел этого раньше (и я не исходят из программирования). I console.logged query и понимаю, что это объект (который требуется Mongodb), но когда я console.logged (JSON.parse (req.query.query)) или JSON.parse (query), чтобы узнать окончательный вывод, программа перестает работать без сообщений об ошибках, очень странно .. Если кто-то может объяснить приведенный выше синтаксис и почему это нужно сделать, чтобы это работало, это было бы очень полезно. PS, когда я пытаюсь настроить консоль JSON .parse как так, он не загружается, даже если это не должно иметь никакого эффекта:
export function index(req, res) {
var query = req.query.query && JSON.parse(req.query.query)
var que = JSON.parse(req.query.query)
Thing.find(query).sort({_id:-1}).limit(20).execAsync()
.then(respondWithResult(res))
.catch(handleError(res));
console.log("que"+que)
}
Возможный дубликат [Назначение с двойной амперсанд "&&"] (http://stackoverflow.com/questions/12878612/assignment-with-double-ampersand) – DAXaholic
Это единственный код, который будет работать. Если я не кодирую его таким образом, это не сработает. Коды выше взяты из фактических рабочих кодов, я просто спрашиваю, что означает этот синтаксис и почему он работает. –