我不知道我的代码有什么问题。我创建了一个带有角度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);
});
答案 0 :(得分:0)
长时间后,这是托管。他们限制了要使用的端口。因此,如果您遇到与我相同的问题,那么它可以在本地运行,但不能在服务器上运行。保持聪明,并与您的主机联系。我不是^^“