Какие файлы мне нужны для развертывания приложения nodeJS в Интернете - PullRequest
0 голосов
/ 01 марта 2019

Я новичок и пытаюсь развернуть свое приложение nodeJS, которое работает локально, в Интернете.Я использую облако Jelastic.Я создал среду.Теперь, когда я хочу выполнить развертывание из локального файла, я должен предоставить файл .zip.

My app file looks like that.

Я пытался сжать его в .gif и использовать .gif.Jelastic сказал, что развертывание прошло успешно, но затем он не запустил сервер.

Так что я хочу знать, является ли это хорошим файлом для передачи, а также я не уверен, что должно стоять на package.json(на самом деле есть только зависимости (и имя и версия)).Кроме того, я не уверен, какие параметры я должен дать server.listen в файле моего сервера.

Я также буду рад, если у вас есть какие-либо другие советы, которые вы можете дать.Я также попробовал на heroku, он возвращает npm ERR: отсутствует скрипт: start

есть код:

server.js:

var http=require("http");

var express = require('express');
var app =express();
var mainServer=http.createServer(app);
var fs = require('fs');
var io =require('socket.io').	listen(mainServer);
var users=[];
var waitingRoomSize=0;
var readyToPlay=[];
var nbUser=0;
var accounts = JSON.parse(fs.readFileSync(__dirname+'/accounts.json',{encoding:'utf8'},function(err){if(err){throw err;}}));
var clockOfGames = 0;
//var p=0;
var TimePassing = setInterval(function(){clockOfGames++},50);
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.set('views', __dirname);

function account(_pseudo,_mdp){
   ...
}
function user(pseudo,id,_mainId){
...
}
  app.get('/', function (req, res) {
    res.sendfile(__dirname + '/index.html');
  });


app.get('/onGamePage/:mId',function(req, res){
    var x = String(req.params.mId).substring(0,11);
    if (x=='heavenStone'){
    var prm = req.params.mId;
    res.render('onGamePage.html',{mainId:prm});
    }
});

app.get('/index/:mId',function(req, res){
    var x = String(req.params.mId).substring(0,11);
    if (x=='heavenStone'){
    var prm = req.params.mId;
    res.render('index.html',{mainId:prm});
    }
});


app.use(express.static(__dirname+"/style/"));

io.sockets.on('connection', function(socket){
    
...
});





		

mainServer.listen(80);

Package.json:

{
    "name": "TM",
    "start":"node server.js",
    "version": "0.1.0",
    "dependencies": {
        "ejs": "^2.6.1",
        "ent": "~0.1.0",
        "express": "^3.21.2",
        "fs": "0.0.1-security",
        "mysql": "^2.16.0",
        "node-mysql-admin": "^0.1.5",
        "nodeadmin": "^0.1.2",
        "socket.io": "^1.2.1"
    },
    "author": "Lenny"
}

, а затем есть немного HTML.

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Проблема была в файле package.json.Вот как это выглядит сейчас:

{
    "scripts":{
        "start": "node app.js"
    },
    "name": "TM",
    "version": "0.1.0",
    "dependencies": {
        "ejs": "^2.6.1",
        "ent": "~0.1.0",
        "express": "^3.21.2",
        "fs": "0.0.1-security",
        "socket.io": "^1.2.1"
    },
    "author": "Lenny"
}

Однако я до сих пор не полностью понимаю jelastic, я могу запустить его, запустив в консоли, и мне не разрешено запускать его на порту 80, непонимаю почему.

0 голосов
/ 01 марта 2019

Для развертывания приложений NodeJS я предлагаю вам использовать PaaS-сервисы, такие как Heroku.

Но перед развертыванием приложения вы должны его создать;)

Вот некоторые рекомендации при создании новыхПроекты NodeJS:

  • Создайте папку для вашего проекта и cd в эту папку;
  • Введите npm init, чтобы сгенерировать исходные файлы вашего проекта (например, package.json).Он спросит у вас некоторую информацию, вы можете заполнить то, что вы хотите, или просто нажать Enter для каждой записи;
  • Теперь вы можете начать создавать свой проект с файлами и папками.Обязательно создайте файл с именем app.js или index.js в главной папке.Это будет точка входа вашего приложения;
  • В package.json установите этот файл в качестве сценария запуска:

    "scripts": {
        "start": "NODE_ENV=production node app.js"
    }
    
  • Каждый раз, когда вы устанавливаете новую зависимость отNPM, обязательно установите его следующим образом: npm install --save packagename.Это сохранит зависимость в вашем файле package.json.
  • Теперь пришло время для развертывания в Heroku или другом сервисе PaaS.Для этого у вас должен быть установлен GIT, вы можете загрузить его и установить, это очень просто.
  • Следуйте этому руководству на Heroku для развертывания: DEPLOY ON HEROKU
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...