3 changed files with 61 additions and 23 deletions
@ -1,20 +1,21 @@ |
|||||||
var express = require('express'); |
var express = require('express'); |
||||||
var page = require('./src/page'); |
var page = require('./src/page'); |
||||||
|
var storage = require('./src/storage'); |
||||||
var app = express(); |
var app = express(); |
||||||
|
|
||||||
app.use(express.static(__dirname + '/resources/public')); |
app.use(express.static(__dirname + '/resources/public')); |
||||||
|
|
||||||
app.get('/:year/:month/:day/:title', function (req, res) { |
app.get('/new', function (req, res) { |
||||||
var params = req.params; |
res.send("opening new note mask") |
||||||
var id = params.year + "/" + params.month + "/" + params.day + "/" + params.title; |
|
||||||
res.send("opening note " + id); |
|
||||||
}); |
}); |
||||||
|
|
||||||
app.get('/:link', function (req, res) { |
app.get(/(.*)\??.*/, function (req, res) { |
||||||
|
var link = req.params["0"].slice(1); |
||||||
|
storage.getNote(link).then(note => { |
||||||
|
res.send("opening note " + note.text) |
||||||
|
}); |
||||||
}); |
}); |
||||||
|
|
||||||
|
|
||||||
var server = app.listen(3000, function () { |
var server = app.listen(3000, function () { |
||||||
console.log('NoteHub server listening on port %s', server.address().port); |
console.log('NoteHub server listening on port %s', server.address().port); |
||||||
}); |
}); |
||||||
|
|||||||
@ -0,0 +1,33 @@ |
|||||||
|
var Sequelize = require('sequelize'); |
||||||
|
var sequelize = new Sequelize('database', null, null, { |
||||||
|
dialect: 'sqlite', |
||||||
|
pool: { |
||||||
|
max: 5, |
||||||
|
min: 0, |
||||||
|
idle: 10000 |
||||||
|
}, |
||||||
|
storage: 'database.sqlite' |
||||||
|
}); |
||||||
|
|
||||||
|
var Note = sequelize.define('Note', { |
||||||
|
id: { type: Sequelize.INTEGER, autoIncrement: true, unique: true, primaryKey: true }, |
||||||
|
text: Sequelize.TEXT, |
||||||
|
published: { type: Sequelize.DATE, defaultValue: Sequelize.NOW }, |
||||||
|
edited: { type: Sequelize.DATE, allowNull: true, defaultValue: null }, |
||||||
|
publisher: Sequelize.STRING(32), |
||||||
|
password: Sequelize.STRING(16), |
||||||
|
views: Sequelize.INTEGER, |
||||||
|
}); |
||||||
|
|
||||||
|
var Link = sequelize.define('Link', { |
||||||
|
id: { type: Sequelize.STRING, unique: true, primaryKey: true }, |
||||||
|
lastUsage: { type: Sequelize.DATE, allowNull: true, defaultValue: null }, |
||||||
|
params: Sequelize.STRING |
||||||
|
}); |
||||||
|
|
||||||
|
Note.hasMany(Link); |
||||||
|
Link.belongsTo(Note); |
||||||
|
|
||||||
|
module.exports.getNote = linkId => Link.findById(linkId).then(link => { |
||||||
|
return Note.findById(link.NoteId); |
||||||
|
}); |
||||||
Loading…
Reference in new issue