我只是需要一点指导,以便更多地阅读关于以下问题的内容:
我有几个python脚本在我的网络驱动器上的一个文件夹中,我每天运行,我想创建一个网站,在那里我以列表的形式显示那些脚本,当我点击它们时,我希望它们能够运行。
有办法用AngularJs解决这个问题吗?
谢谢你的帮助
发布于 2016-01-28 11:07:27
好的,我有一个小的节点服务器,我为了你的目的做了一些改动,我知道这不是一个理想的服务器,但是这个应该可以完成这个工作。post请求上的响应应该取决于是否只想触发python脚本,或者您也想要它的输出。
从前端发送包含python脚本或其他内容的路径的post请求,并自己更改post情况。
使用一个角循环来读取列表,它可以是从目录中的静态文件夹中提供的json。
这个服务器无论如何都不是安全的,很可能会在短时间内被破解,但是对于本地场景,它可以达到这个目的。
另外,如果您不想使用这一点,那么请记住,您可以将列表从端点服务器到页面,并使用ng-repeat填充HTML,然后发送带有脚本相对路径或后端脚本名称和处理路径的post请求,这将是最重要的。抱歉,不能贴任何正面的东西。
var http = require('http');
var fs = require('fs');
var url = require('url');
var colors = require('colors');
var exec = require('child_process').exec;
var staticReg = /^\/static\/\w+\.\w+$/;;
var server = http.createServer(function(request, response){
var url_parts = url.parse(request.url)
if (request.method=="GET"){
process.stdout.write("GET :: ".green + url_parts.path.yellow)
if(staticReg.test(url_parts.path)){
if (fs.existsSync("."+url_parts.path)){
response.writeHead(200)
response.write(fs.readFileSync("."+url_parts.path))
response.end()
process.stdout.write(" :: 200\n".green)
}
else{
response.writeHead(404)
response.end()
process.stdout.write(" :: 404\n".red)
}
return
}
switch (url_parts.path){
case "/":
process.stdout.write(" :: 200\n".green)
var home = fs.readFileSync("./index.html")
response.writeHead(200);
response.write(home);
response.end();
break;
default :
process.stdout.write(" :: 404\n".red)
response.writeHead(404);
response.write("404 not found")
response.end();
break;
}
}
if (request.method=="POST"){
process.stdout.write("POST :: ".green + url_parts.path.yellow)
var body = '';
request.on('data',function(data){
body+=data;
});
request.on('end', function(){
switch(url_parts.path){
case "/fire/":
body=JSON.parse(body)
process.stdout.write(" :: 200\n".green)
command='python '+body["script_path"]
exec(command,function callback(error, stdout, stderr){
// Do error checking here and send response.
})
// Or send response here.
response.writeHead(200);
response.write("Command fired.")
response.end();
break;
}
})
}
})
server.listen(8002);
console.log("Listening to "+"localhost".blue+" on port "+ "8002".green);
server.on('error',function(err){
console.log('Error happened: '+err.toString());
})https://stackoverflow.com/questions/35058530
复制相似问题