Router.use()需要中间件函数,但在Function.use中获得了一个Object

时间:2015-10-03 08:08:46

标签: node.js recaptcha

contact.js的代码:

var express = require('express');
var router = express.Router();
var nodemailer= require('nodemailer');
var dateFormat = require('dateformat');
var now = new Date();

    // Basic usage
    dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('contact', { title: 'Contact' });
});


  router.post('/send', function(req, res, next) {
          verifyRecaptcha(req.body["g-recaptcha-response"], function(success) {
                  if (success) {
                          res.end("Success!");
                          // TODO: do registration using params in req.body
                          var transporter = nodemailer.createTransport({
                            service: 'Gmail',
                            auth: {
                              user : 'email@gmail.com',
                              pass : 'pass'
                            }
                          });
                          var mailOptions = {
                          from: 'Thiyagaraj <email@gmail.com>',
                          to : 'email@gmail.com',
                          subject : now +req.body.from ,
                          text : 'Order placed '

                          };
                          transporter.sendMail(mailOptions, function(error, info){
                            if(error){
                              console.log(error);
                              res.redirect('/');
                            }else{
                              console.log('message sent');
                              res.redirect('/');
                            }
                          });
                  } else {
                          res.end("Captcha failed, sorry.");
                          // TODO: take them back to the previous page
                          res.render('about', { title: 'About' });
                  }
          });
  });

/*
});

module.exports = router;
*/

这是重新验证的... 是否需要特殊依赖? 或者代码有错误 ................................... ...................................

提前感谢:)

1 个答案:

答案 0 :(得分:0)

路由器的最后一行需要取消注释。

module.exports = router;

这是将路由器暴露给您的应用的代码。我猜你有什么需要这个文件并将其传递给app.use,但是这个文件没有导出任何东西(因为它被注释掉了)所以app.use期待一个函数但是未定义。