AngularJS: ¿Cómo construyo una barra de búsqueda ‘reactiva’ que obtenga consultas de un host remoto MongoDB?

Si está utilizando Node.JS, me gusta construir una página API que maneje la consulta. Luego uso mi controlador para decir, oye, cuando buscan esto, vaya a la API para obtener los resultados y enviarlos de vuelta. Así que esencialmente su configuración es la siguiente:

Ruta del lado del servidor:

Nota: Estoy acostumbrado a usar la secuencia, no recuerdo cómo configurar correctamente una consulta mongo, lo siento: P.

función searchQuery (consulta, respuesta) {
mongoDB (consulta)
.success (function (resultados) {
respuesta (resultados)
})
}
functions.apiSearch = function (req, res) {
searchQuery (query, function (queryResponse) {
json.res (queryResponse)
})
}

Controlador:

función queryMongo (searchTerm, resultados) {
$ .get (‘/ apiSearch / searchTerm /’, function (json) {
// usa los resultados sin embargo
})
}

Luego, en su controlador, simplemente pasa la función anterior en el ámbito $ y la vincula al elemento que realiza la búsqueda. Algo como esto:

searchCtrl.controller (‘search’, [‘$ scope’, ‘$ timeout’, function ($ scope, $ timeout) {
$ scope.search = function () {
queryMongo (searchTerm, function (searchResults) {
$ timeout (function () {
$ scope.searchResults = searchResults;
})
});
}])

El tiempo de espera es necesario porque angular continuará la ejecución sin una respuesta de devolución de llamada.

Una vez que tenga los resultados, puede hacer que el controlador vuelva a procesar la página sin actualizar y las respuestas JSON de Node son súper rápidas.

Espero que ayude 😛

Si desea que sea realmente “reactivo”, considere usar RxJS ( https://github.com/Reactive-Exte …)