mirror of
https://github.com/seejohnrun/haste-server.git
synced 2024-12-24 11:06:59 +00:00
parent
7a08960414
commit
467f9a53b2
2 changed files with 16 additions and 3 deletions
|
@ -15,12 +15,23 @@ var DocumentHandler = function(options) {
|
|||
DocumentHandler.defaultKeyLength = 10;
|
||||
|
||||
// Handle retrieving a document
|
||||
DocumentHandler.prototype.handleGet = function(key, response, skipExpire) {
|
||||
DocumentHandler.prototype.handleGet = function(key, callback, response, skipExpire) {
|
||||
this.store.get(key, function(ret) {
|
||||
if (ret) {
|
||||
winston.verbose('retrieved document', { key: key });
|
||||
response.writeHead(200, { 'content-type': 'application/json' });
|
||||
response.end(JSON.stringify({ data: ret, key: key }));
|
||||
var responseData = JSON.stringify({ data: ret, key: key });
|
||||
if (callback) {
|
||||
if (callback.match(/^[a-z0-9]+$/i)) {
|
||||
response.writeHead(200, { 'content-type': 'application/javascript' });
|
||||
response.end(callback + '(' + responseData + ');');
|
||||
} else {
|
||||
response.writeHead(400, { 'content-type': 'application/json' });
|
||||
response.end(JSON.stringify({ message: 'invalid callback function name' }));
|
||||
}
|
||||
} else {
|
||||
response.writeHead(200, { 'content-type': 'application/json' });
|
||||
response.end(responseData);
|
||||
}
|
||||
}
|
||||
else {
|
||||
winston.warn('document not found', { key: key });
|
||||
|
|
|
@ -116,8 +116,10 @@ connect.createServer(
|
|||
// get documents
|
||||
app.get('/documents/:id', function(request, response, next) {
|
||||
var skipExpire = !!config.documents[request.params.id];
|
||||
var parsedUrl = url.parse(request.url, true);
|
||||
return documentHandler.handleGet(
|
||||
request.params.id,
|
||||
parsedUrl.query.callback,
|
||||
response,
|
||||
skipExpire
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue