-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.js
49 lines (34 loc) · 1.35 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var express = require('express');
var proxy = require('express-http-proxy');
var url= require('url');
var app = express();
/*app.get('/favicon.ico',function(req,res){
//deal with annoying as heck favicon requests: https://gist.github.com/kentbrew/763822
res.writeHead(200,{'Content-Type':'image/x-icon'});
console.log('favicon req');
res.end();
return
});*/
app.get('/proxy/:mode/:id', proxy('www.chemspider.com', {
filter: function(req,res){
return req.method=='GET';
},
forwardPath:function(req,res){
var mode=req.params.mode;
var id=req.params.id;
if(mode == 'i2m'){
console.log(url.parse('/InChI.asmx/InChIKeyToMol?inchi_key='+id).path)
return url.parse('/InChI.asmx/InChIKeyToMol?inchi_key='+id).path;
}
if(mode == 'm2i'){
console.log(url.parse('/InChI.asmx/MolToInChIKey?mol='+id).path)
return url.parse('/InChI.asmx/MolToInChIKey?mol='+id).path;
}
},
intercept: function(rsp,data,req,res,callback){
res.setHeader('Access-Control-Allow-Origin',"*");
res.send(data.toString('utf8'));
}
}));
app.listen(process.env.PORT);
//var url ="https://www.chemspider.com/InChI.asmx/InChIKeyToMol?inchi_key="+compound;