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

时间:2021-01-24 04:53:49

标签: javascript node.js amazon-web-services express amazon-ec2

我正在尝试将完整的 MERN CRUD 堆栈(M 是 mysql)部署到 AWS。我已经成功地在 RDS 实例上托管了 mysql 数据库。我的下一步是将我的节点/快速服务器部署到 AWS。我得到建议使用 ec2 创建一个虚拟机来托管这个节点后端。我已经成功创建了 ec2 实例。但是,我不知道如何进行。总而言之,我正在尝试使用 ec2 虚拟机在 AWS 上托管我的节点/快速服务器。我似乎无法弄清楚接下来的步骤(在创建初始 ec2 实例之后)。 如果上下文有帮助,这里是我的节点/快递服务器。您可以向我提供任何提示、资源、建议或知识,我们将不胜感激!

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");
});

1 个答案:

答案 0 :(得分:2)

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

  1. pem 文件是私钥文件,因此您可以将其存储在安全的地方。
  2. 打开 cmd 并导航到您存储 pem 文件的目录。
  3. cmd 中输入 ssh -i file_name.pem ubuntu@public IP 您可以在实例描述中找到公共 IP。
  4. 因此您将获得您选择的虚拟操作系统 cmd。现在您可以直接从 GIT 中拉取您的代码或使用 FTP(例如 filezilla)手动上传文件。
  5. 您可以在此处阅读有关连接到 filezilla 的信息。https://forums.aws.amazon.com/thread.jspa?messageID=741338