sleeveforarm
Version:
Making Azure Easy
53 lines (46 loc) • 1.81 kB
text/typescript
import * as http from "http";
import * as MySql2 from "mysql2/promise";
import * as ServiceEnvironment from "sleeveforarm/src/serviceEnvironment";
let responseString = "Not Set!";
async function setUpDb() {
try {
const connectionObject =
ServiceEnvironment.getMySqlConnectionObject("mySql");
const connection = await MySql2.createConnection(connectionObject);
try {
const result = await connection.query("CREATE DATABASE foo");
} catch (err) {
if (err.code !== "ER_DB_CREATE_EXISTS") {
throw err;
}
}
await connection.query("USE foo");
try {
await connection.query("CREATE TABLE fooers (name VARCHAR(255))");
} catch (err) {
if (err.code !== "ER_TABLE_EXISTS_ERROR") {
throw err;
}
}
await connection.query("INSERT INTO fooers (name) VALUES ('A Name')");
await connection.query(
"INSERT INTO fooers (name) VALUES ('Another Name')");
const [customers, fields] =
await connection.query("SELECT * FROM fooers");
if (customers.length < 2 || customers[0].name !== "A Name" ||
customers[1].name !== "Another Name") {
throw new Error(`Returned data failed test`);
}
responseString = customers[0].name;
} catch (err) {
responseString = "FAILURE! " + err;
}
}
setUpDb();
const server = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end(responseString);
});
const port = process.env.PORT || 1337;
server.listen(port);
console.log("Server running at http://localhost:%d", port);