-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpost.js
126 lines (118 loc) · 3.62 KB
/
post.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
const Koa = require('koa')
const fs = require('fs')
const app = new Koa()
//var answ=require('./spawn.js')
function render( page ) {
return new Promise(( resolve, reject ) => {
let viewUrl = `./${page}`
fs.readFile(viewUrl, "binary", ( err, data ) => {
if ( err ) {
reject( err )
} else {
resolve( data )
}
})
})
}
var window=new Array();
window[0] = 0;
app.use(async (ctx,next) => {
if ( ctx.url === '/' && ctx.method === 'GET' ) {
// 当GET请求时候返回表单页面
let url = 'my_ui.html'
let html = await render( url )
ctx.body = html
} else if ( ctx.url === '/' && ctx.method === 'POST' ) {
await next()
} else {
// 其他请求显示404
ctx.body = '<h1>404!!! o(╯□╰)o</h1>'
}
})
app.use(async ( ctx ) => {
// 当POST请求的时候,解析POST表单里的数据,并显示出来
flag=0;
window.data1=0;
let postdata = "";
ctx.req.addListener('data', (data) => {
postdata += data
console.log(postdata)
//let answer= process_string(ctx,postdata);
ctx.req.addListener("end",function(){
// let parseData = parseQueryStr( postdata )
var spawn = require('child_process').spawn;
var ls_var = spawn('python3',['query.py',postdata]);
ls_var.stdout.on('data',function(data)
{
console.log('stdout:'+data);
window[0] = data;
ctx.body=window[0]
//window.data1=data
flag=1;
});
})
//sleep(3000)
})
//for(;flag!=1;)
// console.log(postData);
//ctx.body=window[0]
//var answer=answ.process_string(postData);
//console.log(answer);
ctx.body = "rep"
//ctx.body="rep"
})
function process_string(ctx,string){
var spawn = require('child_process').spawn;
var ls_var = spawn('python3',['query.py',string]);
ls_var.stdout.on('data',function(data)
{
console.log('stdout:'+data);
ctx.body = data;
return data;
});
};
// 解析上下文里node原生请求的POST参数
function parsePostData( ctx ) {
let postdata = "";
ctx.req.addListener('data', (data) => {
postdata += data
console.log(postdata)
//let answer= process_string(ctx,postdata);
ctx.req.addListener("end",function(){
// let parseData = parseQueryStr( postdata )
var spawn = require('child_process').spawn;
var ls_var = spawn('python3',['query.py',postdata]);
ls_var.stdout.on('data',function(data)
{
console.log('stdout:'+data);
window['data'] = data;
return data;
});
})
})
}
/*
// 将POST请求参数字符串解析成JSON
function parseQueryStr( queryStr ) {
let queryData = {}
let queryStrList = queryStr.split('&')
console.log( queryStrList )
for ( let [ index, queryStr ] of queryStrList.entries() ) {
let itemList = queryStr.split('=')
queryData[ itemList[0] ] = decodeURIComponent(itemList[1])
}
return queryData
}
*/
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
app.listen(3000, () => {
console.log('Request post is starting at port 3000')
})