Javascript 如何在ec2实例上托管节点js服务器

Javascript 如何在ec2实例上托管节点js服务器,javascript,node.js,amazon-web-services,express,amazon-ec2,Javascript,Node.js,Amazon Web Services,Express,Amazon Ec2,我正在尝试将一个完整的merncrud堆栈(我是mysql)部署到AWS。我已经成功地在RDS实例上托管了mysql数据库。我的下一步是将node/express服务器部署到AWS。我得到建议使用ec2来创建一个虚拟机,在这个虚拟机上托管这个节点后端。我已经成功创建了ec2实例。然而,我不知道如何进行。总而言之,我正在尝试使用ec2虚拟机在AWS上托管我的node/express服务器。我似乎无法理解接下来的步骤(在创建初始ec2实例之后)。 如果上下文有帮助,下面是我的node/express

我正在尝试将一个完整的merncrud堆栈(我是mysql)部署到AWS。我已经成功地在RDS实例上托管了mysql数据库。我的下一步是将node/express服务器部署到AWS。我得到建议使用ec2来创建一个虚拟机,在这个虚拟机上托管这个节点后端。我已经成功创建了ec2实例。然而,我不知道如何进行。总而言之,我正在尝试使用ec2虚拟机在AWS上托管我的node/express服务器。我似乎无法理解接下来的步骤(在创建初始ec2实例之后)。 如果上下文有帮助,下面是我的node/express服务器。如果您能为我提供任何提示、资源、建议或知识,我将不胜感激

const express = require("express");
const mysql = require("mysql");
const cors = require("cors")
const formData = require("express-form-data");

var app = express();
app.use(cors());
app.use(formData.parse({maxFieldSize: '10mb'}));

var mysqlConnection = mysql.createConnection({
    host: ****,
    user: ****,
    password: ****,
    database: ****
})

mysqlConnection.connect((err) => {
    if(err) {
        throw err;
    }
    console.log("Connected to AWS!")
})

app.get('/', (request, response) => {
    response.send('hello from /')
});

app.post('/createUser', function(req, res) {
    console.log('/createUser')
    console.log(req.body);
    const createUser = `CALL CreateUser('${req.body.username}', '${req.body.password}', 
'${req.body.firstName}')`;
    mysqlConnection.query(createUser, (error, result) => {
        if (error) {
            console.log(error);
        } else {
            console.log('created user');
        }
    })
});

app.get('/signIn', function (request, response) {
    console.log('in /signIn');
    console.log(request.query);
    var {username, password} = request.query;
    console.log(username)
    console.log(password)
    var validateAccount = `CALL ValidateAccount('${username}', '${password}')`;
    var test = `SELECT UserID FROM users WHERE Username = '${username}' AND Passcode = 
    '${password}'`;

    mysqlConnection.query(validateAccount, (error, result) => {
        if (error) {
            console.log(error);
        } else if (result[0] === undefined || result[0].length === 0) {
            console.log('user does not exist');
        } else {
            console.log('user exists');
            console.log(result[0][0].UserID);
            response.status(200).json({
                userID: result[0][0].UserID,
                username: result[0][0].Username,
                passcode: result[0][0].Passcode,
                employmentStatus: result[0][0].EmploymentStatus
            })
        }
    })
})

app.listen(5000, function() {
    console.log("Listening on port 5000");
});

因为您已经创建了一个实例,所以它必须生成一个pem文件。所以我将告诉您生成.pem文件后的步骤

  • pem文件是私钥文件,所以您可以将其存储在安全的地方
  • 打开
    cmd
    并导航到存储
    pem
    文件的目录
  • cmd
    type
    ssh-i file\u name.pem中ubuntu@publicIP
    您可以在实例描述中找到公共IP
  • 因此,您将获得一个已选择的虚拟操作系统cmd。现在,您可以直接从GIT中提取代码,或者使用FTP(如filezilla)手动上载文件
  • 您可以在此处阅读有关连接到filezilla的信息。https://forums.aws.amazon.com/thread.jspa?messageID=741338

  • 非常感谢。这似乎是朝着正确方向迈出的一步。但是,当我运行您在第3行中提到的命令时,我得到了一个权限拒绝错误。有什么想法吗?你的操作系统是什么?我的操作系统是Windows以管理员身份运行命令提示符