Estoy usando la biblioteca de formularios para Node.js ( Formularios ), que me representará un formulario en el backend de la siguiente manera:
var signup_form = forms.create({
username: fields.string({required: true})
, password: fields.password({required: true})
, confirm: fields.password({
required: true
, validators: [validators.matchField('password')]
})
, email: fields.email()
});
var signup_form_as_html = signup_form.toHTML();
La última línea var signup_var signup_form_as_html = signup_form.toHTML();
crea un bloque de HTML que se ve así:
<div class="field required"><label for="id_username">Username</label><input type="text" name="username" id="id_username" /></div><div class="field required"><label for="id_password">Password</label><input type="password" name="password" id="id_password" /></div><div class="field required"><label for="id_confirm">Confirm</label><input type="password" name="confirm" id="id_confirm" /></div><div class="field"><label for="id_email">Email</label><input type="text" name="email" id="id_email" /></div>
Básicamente, solo una larga cadena de HTML. Luego trato de renderizarlo usando EJS y Express usando el siguiente código:
res.render('signup.ejs', {
session: loginStatus(req)
, form: signup_form_as_html
});
Pero al renderizar, el HTML es simplemente la cadena que publiqué anteriormente, en lugar de HTML real (y, por lo tanto, un formulario como quiero). ¿Hay alguna forma de hacer que esa cadena se represente como HTML real usando EJS? ¿O tendré que usar algo como Jade?