Skip to content

Commit 3c729a5

Browse files
committed
starting with the original project
0 parents  commit 3c729a5

File tree

19 files changed

+1420
-0
lines changed

19 files changed

+1420
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.idea
2+
node_modules
3+
.vs

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## Notice
2+
+ This is a toy project that attemps to provide online editing service
3+
+ The project urgently needs refactoring
4+
5+
## Screenshot
6+
![online_code_editor_screenshot](annex/online_code_editor_screenshot.png)
34.1 KB
Loading

app.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
'use strict';
2+
const debug = require('debug');
3+
const express = require('express');
4+
const path = require('path');
5+
const favicon = require('serve-favicon');
6+
const logger = require('morgan');
7+
const cookieParser = require('cookie-parser');
8+
const bodyParser = require('body-parser');
9+
const fs = require('fs');
10+
11+
const routes = require('./routes/index');
12+
const users = require('./routes/users');
13+
14+
const app = express();
15+
16+
17+
app.use(logger('dev'));
18+
app.use(bodyParser.json());
19+
app.use(bodyParser.urlencoded({extended: false}));
20+
app.use(cookieParser());
21+
app.use(express.static(path.join(__dirname, 'public')));
22+
23+
24+
app.get("/existingFile", function (req, res) {
25+
var responceText = '';
26+
const targetDir = process.cwd() + '/public/data';
27+
console.log("Taregt dir: " + targetDir);
28+
fs.readdir(targetDir, (err, files) => {
29+
files.forEach(file => {
30+
const temp = file + '\n';
31+
responceText += temp;
32+
});
33+
res.send(responceText);
34+
});
35+
});
36+
37+
38+
app.post('/getFile', function (req, res) {
39+
const targetDir = process.cwd() + '/public/data/';
40+
const targetFile = targetDir + req.body.filename;
41+
fs.readFile(targetFile, 'utf-8', function (err, data) {
42+
if (err) {
43+
} else {
44+
res.send(data);
45+
}
46+
})
47+
});
48+
49+
50+
app.use('/', routes);
51+
app.use('/users', users);
52+
53+
// catch 404 and forward to error handler
54+
app.use(function (req, res, next) {
55+
const err = new Error('Not Found');
56+
err.status = 404;
57+
next(err);
58+
});
59+
60+
if (app.get('env') === 'development') {
61+
app.use(function (err, req, res, next) {
62+
res.status(err.status || 500);
63+
res.render('error', {
64+
message: err.message,
65+
error: err
66+
});
67+
});
68+
}
69+
70+
71+
app.use(function (err, req, res, next) {
72+
res.status(err.status || 500);
73+
res.render('error', {
74+
message: err.message,
75+
error: {}
76+
});
77+
});
78+
79+
80+
app.set('port', process.env.PORT || 3001);
81+
82+
83+
const server = app.listen(app.get('port'), function () {
84+
debug('Express server listening on port ' + server.address().port);
85+
});

editor.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Sublime Text 3</title>
6+
<link rel="stylesheet" href="stylesheets/code_editor.css" type="text/css" />
7+
<!--<link rel="icon" href="images/sublimetext.svg" type="image/svg" />-->
8+
<link rel="icon" href="images/sublimetext.ico" type="image/x-icon" />
9+
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
10+
<script src="javascripts/code_editor.js" type="text/javascript"></script>
11+
</head>
12+
<body>
13+
<!--<form method="post">-->
14+
<div>
15+
<textarea rows="24" cols="100" class="input" id='code' name='code' autofocus required wrap="soft"></textarea>
16+
<br>
17+
<div id='panel'>
18+
<select class="button" id="existingFileName" onchange="loadFile()"></select>
19+
<button class="button" onclick="loadExistingFileName()">Load</button>
20+
<input class="input" id="filename" type="text" name="filename" placeholder="Input filename:" required />
21+
<input class="input" id="folder" type="text" name="folder" placeholder="Input folder name:" hidden />
22+
<!--<input class="button" type="submit" value="Submit">-->
23+
<button class="button" onclick="submitCode()">Submit</button>
24+
<button class="button" id='danger' onclick="clearCode()">Clear</button>
25+
</div>
26+
</div>
27+
<!--</form>-->
28+
</body>
29+
</html>

0 commit comments

Comments
 (0)