连接html联系我们表格与expressjs服务器端

时间:2015-11-11 18:14:57

标签: html node.js express

您好我是网络开发的新手我正在尝试编写联系我们表单的后端代码,但它一直给我错误:

我的联系我们的Html代码表单:

</div>      
        <div class="row">   
            <div class="col-sm-8">
                <div class="contact-form">
                    <h2 class="title text-center">Get In Touch</h2>
                    <div class="status alert alert-success" style="display: none"></div>
                    <form id="main-contact-form" class="contact-form row" name="contact-form" method="post">
                        <div class="form-group col-md-6">
                            <input type="text" name="name" class="form-control" required="required" placeholder="Name">
                        </div>
                        <div class="form-group col-md-6">
                            <input type="email" name="email" class="form-control" required="required" placeholder="Email">
                        </div>
                        <div class="form-group col-md-12">
                            <input type="text" name="subject" class="form-control" required="required" placeholder="Subject">
                        </div>
                        <div class="form-group col-md-12">
                            <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Your Message Here"></textarea>
                        </div>                        
                        <div class="form-group col-md-12">
                            <input type="submit" name="submit" class="btn btn-primary pull-right" value="Submit">
                        </div>
                    </form>
                </div>
            </div>

我的后端代码是

    var express = require('express');
    var logger = require('morgan');
    var bodyParser = require('body-parser');
    var pjs = require('ejs');
    var nodemailer = require('nodemailer');
    var router = express.Router();


    var app = express();

    // Middleware
    app.set('view engine', 'ejs');
    app.use(express.static('public')); 
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));

    app.get('/', function(req, res) {
    // database query
    res.render('index');
     });


    app.get('/blog-single.html', function(req, res) {
    // database query
    res.render('blog-single');
    });

    app.get('/blog.html', function(req, res) {
    // database query
    res.render('blog');
     });

     app.get('/cart.html', function(req, res) {
    // database query
    res.render('cart');
     });

     app.get('/checkout.html', function(req, res) {
        // database query
        res.render('checkout');
      });

      app.get('/contact-us.html', function(req, res) {
        // database query
            res.render('contact-us');
        });

         router.post('/contact-us.html :contact-form', function(req,           res)          {
            var transporter = nodemailer.createTransport({
            service: 'Gmail',
              auth: {
            user: 'abm.rizk@gmail.com', // Your email id
        }

         })

          });

           app.get('/index.html', function(req, res) {
            // database query
           res.render('index');
          });

           app.get('/login.html', function(req, res) {
                // database query
            res.render('login');
              });

              app.get('/product-details.html', function(req, res) {
                // database query
            res.render('product-details');
           });

           app.get('/shop.html', function(req, res) {
            // database query
            res.render('shop');
             });

            app.get('/*', function(req, res) {
            // database query
            res.render('404');
           });


           app.listen(8080, function(err) {
                if (err) {
                console.log("Error");
                } else {
                console.log("Running on port 8080");
                    }
                  })  

这是我的完整后端代码和html我只是发布了联系我们表单,所以基本上我的问题是

    router.post('/contact-us.html :contact-form', function(req,res){
            var transporter = nodemailer.createTransport({
            service: 'Gmail',
              auth: {
            user: 'abm.rizk@gmail.com', // Your email id
           }

             })

            });

在控制台中没有错误,只有我浏览的错误:

我的表格:

enter image description here

但是一旦我点击提交:

enter image description here

1 个答案:

答案 0 :(得分:1)

路线的路径是错误的。改为:

router.post('/contact-us', function(req,res){
    var transporter = nodemailer.createTransport({
        service: 'Gmail',
            auth: {
                user: 'abm.rizk@gmail.com', // Your email id
            }    
     })    
 });

我在他们的路线上发现了这个问题,但它仍然不起作用,发布了控制台错误输出。