从javascript函数中执行外部$ node hello.js?

时间:2017-11-14 07:21:32

标签: javascript node.js reactjs

我是一个非常初学的后端开发人员,所以如果这个问题相当新手我很抱歉。对于某个javascript文件,当我使用

执行它时,脚本执行完美
$ node hello.js

但是,我希望通过点击我的表单来执行此javascript代码。将此代码封装到函数中并调用该函数似乎每次都会导致错误。

tls.connect is not a function

有没有办法从javascript手动重现终端命令$ node hello.js?任何解决方案或有用的链接将不胜感激。 对于某些上下文,有问题的代码用于在激活时将带有消息的电子邮件转发给单个收件人。我正在使用nodemailer与DigitalOcean上托管的服务器一起实现此目的。 webapp是使用React构建的。

sendMyMail(event) {
  var nodemailer = require('nodemailer');
  var smtpTransport = require('nodemailer-smtp-transport');

  let transporter = nodemailer.createTransport(smtpTransport({
    service: 'gmail',
    secure: false,
    port: 25,
    auth: {
      user: 'myemail@gmail.com',
      pass: 'mypass'
    },
    tls: {
      rejectUnauthorized: false
    }
  }));

  let HelperOptions = {
    from: '"Contact Form" <myemail@gmail.com',
    to: 'myforward@gmail.com',
    subject: 'Hello World',
    text: 'Hello World 2.0'
  };



  transporter.sendMail(HelperOptions, (error, info) => {
    if (error) {
      console.log("Unable to send mail!");

      return console.log(error);
    }
    console.log("The message was sent!");
    console.log(info);
  });

}

1 个答案:

答案 0 :(得分:0)

您需要一个节点服务器才能通过您编写的脚本发送电子邮件。必须调用脚本才能发送邮件。为了调用该特定脚本,您将需要一个服务器,当遇到路由(处理脚本调用)时,该服务器将提供该脚本。

有关详细信息,请参阅:https://appdividend.com/2017/08/11/send-email-in-node-js/#