我正在尝试将node.js应用程序部署到数字海洋。当我这样做时,我的应用在本地运行良好:
node server.js
我使用ssh访问从gitlab克隆了我的存储库,并尝试做同样的事情,但是所有页面的工作都停留在加载阶段,最终它说我的IP地址花了太长时间才能响应。
ERR_CONNECTION_TIMED_OUT
最终,我打算使用某种东西使其永久运行,但是我将为此另行发表文章。
我通常使用我的IP地址:端口号来尝试查看我的应用程序。
这是我的server.js文件:
const express = require('express') ,app = express(), path = require('path'),
socket = require('socket.io'), emailModule = require('./email.js'),
formValidationModule = require('./formValidation.js'), vimeoModule = require('./vimeo.js'),
port = process.env.PORT || 3000;
let
server = app.listen(port,function(){
console.log('listening to requests...');
}),
io = socket(server);
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
io.on('connection', (socket)=>{
console.log('made a connection!');
socket.on('getShortFilmsInfo', ()=>{
vimeoModule.videos.short_films.forEach((y)=>{
vimeoModule.getVideoThumbnail(y).then((data)=>{
socket.emit('shortFilmsInfo', data);
});
})
});
socket.on('getCommercials',()=>{
vimeoModule.videos.commercials.forEach((x)=>{
vimeoModule.getVideoThumbnail(x).then((data)=>{
socket.emit('commercialInfo', data);
})
});
});
socket.on('email', (data)=>{
if(formValidationModule.checkEmptyContact(data.client, data.email, data.name,
data.title, data.message)){
socket.emit('invalidData');
}
else {
/**
* * Here you need to set your email options which includes the clients email, destination email,
* subject and the text (the email content).
*/
emailModule.setMailOptions(data.email,/*'Info@project-gorilla.co.uk'*/'salay777@hotmail.co.uk'
, data.client + ' ' + '(' +
data.name + ')' + ' ' + data.title, data.message).then((mailOpts)=>{
emailModule.send(mailOpts);
});
console.log('email has been sent!');
}
});
});
答案 0 :(得分:0)
您正在数字海洋中运行节点应用程序的端口被阻止外部访问。配置数字海洋,以将端口80
或443
(http和https的默认端口)上的任何请求路由到内部nodejs应用程序。