Skip to content
Snippets Groups Projects
Commit 4626f295 authored by nilstes's avatar nilstes
Browse files

Tester virker

parent dd7476c4
No related branches found
No related tags found
No related merge requests found
CREATE TABLE`person` (
`id` int(11) NOT NULL,
`navn` varchar(256) NOT NULL,
`alder` int(3) DEFAULT NULL,
`adresse` varchar(256) NOT NULL,
`bilde_base64` longtext
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
\ No newline at end of file
CREATE TABLE person (
id int(11) NOT NULL AUTO_INCREMENT,
navn varchar(256) NOT NULL,
alder int(3) DEFAULT NULL,
adresse varchar(256) NOT NULL,
bilde_base64 longtext,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO person (id, navn, alder, adresse) VALUES
(1, 'Hei Sveisen', 21, 'Gata 1'),
(2, 'Hei Heisen', 22, 'Gata 2');
module.exports = class Dao {
constructor(pool) {
// Dependency Injection
this.pool = pool;
}
query(sql, params, callback) {
this.pool.getConnection((err, connection) => {
console.log("dao: connected to database");
if (err) {
console.log("dao: error connecting");
callback(500, { error: "feil ved ved oppkobling" });
} else {
console.log("dao: running sql: " + sql);
connection.query(sql, params, (err, rows) => {
connection.release();
if (err) {
console.log(err);
callback(500, { error: "error querying" });
} else {
console.log("dao: returning rows");
callback(200, rows);
}
});
}
});
}
};
const Dao = require("./dao.js");
module.exports = class PersonDao extends Dao {
getAll(callback) {
super.query("select navn, alder, adresse from person", [], callback);
}
getOne(id, callback) {
super.query(
"select navn, alder, adresse from person where id=?",
[id],
callback
);
}
createOne(json, callback) {
var val = [json.navn, json.adresse, json.alder];
super.query(
"insert into person (navn,adresse,alder) values (?,?,?)",
val,
callback
);
}
};
var mysql = require("mysql");
const PersonDao = require("./persondao.js");
const runsqlfile = require("./runsqlfile.js");
var pool = mysql.createPool({
connectionLimit: 1,
host: "mysql",
......@@ -9,31 +12,30 @@ var pool = mysql.createPool({
debug: false
});
test("query db", done => {
console.log("Connecting to database");
function callback(data) {
console.log("Callback: " + data);
expect(data).toBe("SUCCESS");
let personDao = new PersonDao(pool);
beforeAll(done => {
runsqlfile("dao/create_tables.sql", pool, () => {
runsqlfile("dao/create_testdata.sql", pool, done);
});
});
test("get one person from db", done => {
function callback(status, data) {
console.log("Callback: status=" + status + ", data=" + data);
expect(data[0].navn).toBe("Hei Sveisen");
done();
}
pool.getConnection((err, connection) => {
console.log("Connected to database");
if (err) {
callback("Feil ved kobling til databasen: " + err);
} else {
connection.query(
"select 1",
(err, rows) => {
connection.release();
if (err) {
callback("Query error: " + err);
} else {
callback("SUCCESS");
}
}
);
}
});
});
\ No newline at end of file
personDao.getOne(1, callback);
});
test("get all persons from db", done => {
function callback(status, data) {
console.log("Callback: status=" + status + ", data=" + data);
expect(data.length).toBe(2);
done();
}
personDao.getAll(callback);
});
var mysql = require("mysql");
var fs = require("fs");
module.exports = function run(filename, pool, done) {
console.log("runsqlfile: reading file " + filename);
let sql = fs.readFileSync(filename, "utf8");
pool.getConnection((err, connection) => {
if (err) {
console.log("runsqlfile: error connecting");
done();
} else {
console.log("runsqlfile: connected");
connection.query(sql, (err, rows) => {
connection.release();
if (err) {
console.log(err);
done();
} else {
console.log("runsqlfile: run ok");
done();
}
});
}
});
};
var express = require("express");
var mysql = require("mysql");
var bodyParser = require("body-parser");
var app = express();
var apiRoutes = express.Router();
app.use(bodyParser.json()); // for å tolke JSON
const PersonDao = require("./dao/persondao.js");
var pool = mysql.createPool({
connectionLimit: 2,
host: "mysql.stud.iie.ntnu.no",
user: "nilstesd",
password: "lqqWcMzq",
database: "nilstesd",
debug: false
});
let personDao = new PersonDao(pool);
app.get("/person", (req, res) => {
console.log("/person: fikk request fra klient");
personDao.getAll((status, json) => {
res.status(status);
res.json(json);
});
});
app.get("/person/:personId", (req, res) => {
console.log("/person/:personId: fikk request fra klient");
personDao.getOne(req.params.personId, (status, json) => {
res.status(status);
res.json(json);
});
});
app.post("/person", (req, res) => {
console.log("Fikk POST-request fra klienten");
personDao.createOne(req.body, (status, json) => {
res.status(status);
res.json(json);
});
});
var server = app.listen(8080);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment