Angular 8 / Node Js HTTP请求在本地工作,但在服务器/ net :: ERR_CONNECTION_TIMED_OUT上给出错误

时间:2019-12-24 09:26:34

标签: node.js

我不知道我的代码有什么问题。我创建了一个带有角度8的表单,将其发送给节点服务器,它可以正常工作,并且一切都很好。现在,我要在服务器上上线。要求净额:: ERR_CONNECTION_TIMED_OUT 我在线上尝试了不同的选项,但始终无法给出相同的错误。

  this.http.post('https://nirrob.com:8081/sendmail', formData).subscribe(
      (response) => console.log(response),
      (error) => console.log(error)
 )

节点js服务器代码//

const path = require('path');
const express = require('express');
const multer = require('multer');
const fs = require('fs');
const bodyParser = require('body-parser')
const app = express();
const nodemailer = require("nodemailer");
const DIR = './uploads';

    let storage = multer.diskStorage({
        destination: (req, file, cb) => {
          cb(null, DIR);
        },
        filename: (req, file, cb) => {
          cb(null, file.fieldname + '-' + Date.now() + '.' + path.extname(file.originalname));
        }
    });
    let upload = multer({storage: storage});

    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended: true}));

    app.use(function (req, res, next) {
      res.setHeader('Access-Control-Allow-Origin', '*');
      res.setHeader('Access-Control-Allow-Methods', 'POST');
      res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
      res.setHeader('Access-Control-Allow-Credentials', true);
      next();
    });

    var attachedFiles = upload.fields([{ name: 'registration', maxCount: 1 }, { name: 'permit', maxCount: 1 }, { name: 'commerce', maxCount: 1 }, { name: 'companyFile', maxCount: 1 }, { name: 'serviceFile', maxCount: 1 }, ])

    app.post('/sendmail', attachedFiles, function (req, res) {
        if (req.files) {
            let data = req.body;
            console.log(req.files.serviceFile[0]);
            async function main() {
      // Generate test SMTP service account from ethereal.email
      // Only needed if you don't have a real mail account for testing


      // create reusable transporter object using the default SMTP transport
      let transporter = nodemailer.createTransport({
              ////// info
      });



      // send mail with defined transport object
     transporter.sendMail({
            ///info

              });


    }

          main().catch(console.error);
            return res.send({
              success: false
            });

          } else {
            console.log('file received');
            return res.send({
              success: true
            })
          }
    });

    const PORT = process.env.PORT || 8081;

    app.listen(PORT, function () {
      console.log('Node.js server is running on port ' + PORT);
    });

1 个答案:

答案 0 :(得分:0)

长时间后,这是托管。他们限制了要使用的端口。因此,如果您遇到与我相同的问题,那么它可以在本地运行,但不能在服务器上运行。保持聪明,并与您的主机联系。我不是^^“