diff --git a/.gitignore b/.gitignore
index 3c706f1..08cf3a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,3 +71,4 @@ server/.idea/Server.iml
server/.nyc_output
server/coverage
ExampleNodeJS.code-workspace
+server/upload/
\ No newline at end of file
diff --git a/server/app.js b/server/app.js
index 44521eb..bd10419 100644
--- a/server/app.js
+++ b/server/app.js
@@ -6,6 +6,7 @@ let upload = require('express-fileupload');
let indexRouter = require('./routes/index');
let usersRouter = require('./routes/usersCNT');
let fileStorageRouter = require('./routes/fileStorageCNT');
+let observerRouter = require('../server/routes/observer');
let app = express();
@@ -21,6 +22,7 @@ app.use(upload());
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/file', fileStorageRouter);
+app.use('/observer', observerRouter);
let server = app.listen(3000, "127.0.0.1", function () {
let address = server.address().address;
diff --git a/server/package.json b/server/package.json
index 7e0eae0..06be19e 100644
--- a/server/package.json
+++ b/server/package.json
@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"start": "node ./bin/www",
- "test": "nyc mocha --exit && ./node_modules/.bin/eslint --fix app.js routes/** test/**.js signleton/**.js",
+ "test": "nyc mocha --exit && ./node_modules/.bin/eslint --fix app.js routes/** test/**.js model/**.js signleton/**.js",
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
"dependencies": {
diff --git a/server/public/invia.html b/server/public/invia.html
new file mode 100644
index 0000000..729fa35
--- /dev/null
+++ b/server/public/invia.html
@@ -0,0 +1,22 @@
+
+
Send
+
+ Invia un messaggio a ricevi.html
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/public/ricevi.html b/server/public/ricevi.html
new file mode 100644
index 0000000..c47c962
--- /dev/null
+++ b/server/public/ricevi.html
@@ -0,0 +1,23 @@
+
+ Receive
+
+ Riceve il messaggio inviato da invia.html
+
Messaggio:
+
+
+
+
+
\ No newline at end of file
diff --git a/server/routes/fileStorageCNT.js b/server/routes/fileStorageCNT.js
index 1601ada..74d1ed6 100644
--- a/server/routes/fileStorageCNT.js
+++ b/server/routes/fileStorageCNT.js
@@ -5,14 +5,15 @@ let router = require('express').Router();
router.post('/upload', function(req, res){
let file = req.files.filename;
let filename = file.name;
+ console.log(req);
file.mv('./upload/'+filename, function(err){
- if(err) res.status(500).end("500: Internal server error");
+ if(err) {
+ res.status(500).end("500: Internal server error");}
else {//inserisci nel db
+
fileStorage.create({name: filename})
- .then(doc => res.send({message:"a "+doc}).status(200).end())
- .catch(err => res.send({message:"b "+err}).status(403).end());
- //.then(doc =>res.send({message: ""}).status(200).end();
- //.catch(err => res.send({message:""+err}).statusCode(403));
+ .then(doc => res.send({message:"a "+doc}).status(200).end());
+ //.catch(err => res.send({message:"b "+err}).status(403).end());
}
});
/*Soluzione con le promise
diff --git a/server/routes/observer.js b/server/routes/observer.js
new file mode 100644
index 0000000..a755417
--- /dev/null
+++ b/server/routes/observer.js
@@ -0,0 +1,30 @@
+let express = require('express');
+let router = express.Router();
+const EventEmitter = require('events');
+
+class MyEmitter extends EventEmitter{}
+
+let myEmitter = new MyEmitter();
+let obj;
+
+router.post('/listen', function(req, res){
+ let i=0;
+ obj = req.body;
+ myEmitter.once('sendmsg', () => {//.on resta sempre in ascolto
+ if(obj.msg==="inc"){
+ i++;
+ }
+ else{
+ i--;
+ }
+ });
+ myEmitter.emit('sendmsg');
+ res.send({msg: i});
+});
+
+router.get('/response', function(req, res){
+ myEmitter.emit('sendmsg');
+ res.send({msg:obj.msg});
+});
+
+module.exports = router;
\ No newline at end of file
diff --git a/server/test/observer.test.js b/server/test/observer.test.js
new file mode 100644
index 0000000..81cfbfd
--- /dev/null
+++ b/server/test/observer.test.js
@@ -0,0 +1,46 @@
+process.env.NODE_ENV = 'test';
+
+let expect = require('chai').expect;
+let chai = require('chai');
+let chaiHttp = require('chai-http');
+let randomstring = require("randomstring");
+let server = require('../app');
+// eslint-disable-next-line no-unused-vars
+let should = chai.should();
+chai.use(require('chai-match'));
+chai.use(chaiHttp);
+
+it('POST: it should response with a object', function(done){
+ let obj= {msg: randomstring.generate(3)};
+ chai.request(server)
+ .post('/observer/listen')
+ .send(obj)
+ .end(function(err, res){
+ res.should.have.status(200);
+ expect(res.body).to.be.an('object');
+ done();
+ });
+});
+
+it('POST: it should response with a object', function(done){
+ let obj= {msg: "inc"};
+ chai.request(server)
+ .post('/observer/listen')
+ .send(obj)
+ .end(function(err, res){
+ res.should.have.status(200);
+ expect(res.body).to.be.an('object');
+ done();
+ });
+});
+
+it('GET: it should response with a string', function(done){
+
+ chai.request(server)
+ .get('/observer/response')
+ .end(function(err, res){
+ res.should.have.status(200);
+ expect(res.body).to.be.an('object');
+ done();
+ });
+});
\ No newline at end of file
diff --git a/server/test/userCNT.test.js b/server/test/userCNT.test.js
index 6417ea2..2f11014 100644
--- a/server/test/userCNT.test.js
+++ b/server/test/userCNT.test.js
@@ -18,7 +18,7 @@ let regexp = {
};
describe('Signin', function(){
- it('/POST: it should add a user if exist', function(done){
+ it('/POST: it should add a user if does not exist', function(done){
let random = "Test"+randomstring.generate(4);
let user ={username:random, password:"1234"};
chai.request(server)
diff --git a/server/untest/fileStorage.test.js b/server/untest/fileStorage.test.js
index e09f99a..d1ef418 100644
--- a/server/untest/fileStorage.test.js
+++ b/server/untest/fileStorage.test.js
@@ -9,14 +9,27 @@ let should = chai.should();
chai.use(require('chai-match'));
chai.use(chaiHttp);
-it('POST: dovrebbe uppare il file', function(done){
- let toSend = {};
+it('dovrebbe NON uppare il file', function(done){
+ //const filePath = `${__dirname}/upload/upload.txt`;
chai.request(server)
.post('/file/upload')
- .attach(toSend)
- .send(toSend)
+ .field('customKey', 'customValue')
+ .attach('files', '/Users/francescovicidomini/git/ExampleNodeJS/server/upload/upload.txt', 'upload.txt')
.end(function(err, res){
- res.should.have.status(200);
+ res.should.have.status(500);
done();
});
});
+
+it('dovrebbe UPPARE il file', function(done){
+ let filename= "2018-11-28 15.11.55.jpg";
+ chai.request(server)
+ .post('/file/upload')
+ .attach('image', '/Users/francescovicidomini/git/ExampleNodeJS/server/upload/'+filename)
+ //.field('customKey', 'customValue')
+ //.attach('files', '/Users/francescovicidomini/git/ExampleNodeJS/server/upload/upload.txt', 'upload.txt')
+ .end(function(err, res){
+ res.should.have.status(200);
+ done();
+ });
+});
\ No newline at end of file