[javascript] Formulario muy simple de Nodejs con rutas que no se pueden publicar



Answers

eliminar la barra desde el post-put

<form method="post" action="post-put"> 
Question

Tengo una forma muy simple dentro de una aplicación NodeJS / ExpressJS que no se puede publicar.

El código app.js (lo llamo servidor.js) se ve así.

var express = require('express');
var fs = require('fs');
var path = require('path');
var urlEncoded = require('urlencoded-request-parser');

var bodyParser = require('body-parser');

var server = express();
var port = process.env.port || 1337;

server.use(urlEncoded());
server.use(bodyParser.urlencoded({extended: true}));

var routePath="./routes/"; 
fs.readdirSync(routePath).forEach(function(file) {
    var route=routePath+file;
    require(route)(server);
});

server.set('view engine', 'ejs');
server.set('views', __dirname);
server.listen(port);

Mi formulario de publicación (post.ejs)

<form method="post" action="post-put"> 
    <fieldset>

        <!-- Form Name -->
        <legend>Which Test Type</legend>

        <!-- Multiple Radios (inline) -->
        <div class="form-group">
            <label class="col-md-2 control-label" for="TestType">Please test our</label>
            <div class="col-md-4"> 
                <label class="radio-inline" for="TestType-0">
                    <input type="radio" name="SoftwareTestType" id="TestType-0" value="SoftwareTest" checked="checked">
                    Software
                </label> 
                <label class="radio-inline" for="TestType-1">
                    <input type="radio" name="HardwareTestType" id="TestType-1" value="HardwareTest">
                    Hardware
                </label>
            </div>
        </div>
    </fieldset>
    <input type='submit' class="btn btn-default" id='submit' value='Submit your Test'/>
</form>

Los resultados se muestran en esta página (post-results.ejs)

<%= Test %>

Tengo dos rutas (post-get.js)

module.exports = function(server){

    server.get('/post', function(req,res){
        res.render('./views/test/post.ejs',{            
        });
    });
}

y (post-puts.js)

module.exports = function(server){
    server.post('post-put', function(req,res){
        console.log("In Submission POST")
        var TestType = "";
        if(req.body.HardwareTestType == true) 
            TestType = "Hardware";
        else
            TestType = "Software";

        res.render('./views/test/post-results.ejs',{
            Test: TestType
        });
    });
}

Cuando hago clic en el botón Enviar, las herramientas del desarrollador muestran esto:

Esto me está volviendo loco. ¿Alguien sabe cómo hacer esto para publicar los resultados en el archivo post-results.ejs? El diseño del sistema de archivos para la aplicación se ve así:

ACTUALIZACIÓN: Tanto la forma como el enrutador tienen las mismas rutas "post-puts". En la ruta posterior a la publicación hay un console.log () ... pero NO se llama. Creo que todavía podría ser el tipo de aplicación como se muestra en la imagen dos arriba (Herramientas de desarrollador) Cuando una "cosa" tiene solo 1 función, decir que no funciona es específica; si pudiera ser más específico, sabría cuál es el problema fue y arreglarlo.






Links