Estoy tratando de actualizar un modelo instanciado ('Lugar' - Sé que funciona desde otras rutas) en un MongoDB y he pasado un rato tratando de hacerlo correctamente. También estoy tratando de redirigir a la página que ve el 'lugar' para ver las propiedades actualizadas.Actualizar el modelo con Mongoose, Express, NodeJS
v0.4.0 Node, v1.0.7 Express, Mongoose 1.10.0
esquema:
var PlaceSchema = new Schema({
name :String
, capital: String
, continent: String
});
Controller/rutas:
app.put('/places/:name', function(req, res) {
var name = req.body.name;
var capital = req.body.capital;
var continent = req.body.continent;
Place.update({ name: name, capital: capital, continent: continent}, function(name) {
res.redirect('/places/'+name)
});
});
He intentado de varias maneras pero parece que no puedo conseguirlo.
Además, ¿no es así como declaro las tres variables {nombre, capital y continente} que bloquean más operaciones? Gracias. También se agradece la ayuda general para la depuración. Console.log (nombre) (justo debajo de la declaración) no registra nada.
Jade formulario:
h1 Editing #{place.name}
form(action='/places/'+place.name, method='POST')
input(type='hidden', name='_method', value='PUT')
p
label(for='place_name') Name:
p
input(type='text', id='place_name', name='place[name]', value=place.name)
p
label(for='place_capital') Capital:
p
input(type='text', id='place_capital', name='place[capital]', value=place.capital)
p
label(for='place_continent') Continent:
p
textarea(type='text', id='place_continent', name='place[continent]')=place.continent
p
input(type="submit")
Así es como lo hago. – Carlosedp
¡Gracias! Pregunta rápida: ¿cómo sabe la función de devolución de llamada anónima después de db.query que 'p' en su ejemplo es/debería ser el (los) resultado (s) de la consulta? ¿Es solo un comportamiento incorporado? – JohnAllen
No lo "sabe" por sí mismo. Es por eso que debe verificarlo como nulo (ya que el resultado siempre es nulo en caso de error). En mi ejemplo, no usé el objeto 'err', aquí es donde se incluiría el mensaje de error exacto. si consulta los miembros incorrectos (por ejemplo 'p.foo' mientras que p no tiene ningún miembro de foo), obtendrá' undefined'. – schaermu