我需要知道我的快速应用程序是否可能导致文件资源管理器在客户端的Windows 7或Windows 10 PC上打开文档。我可以在Express上下文之外进行操作(仅脚本可以正常工作)。
到目前为止,我已经使python-shell库正常工作并接受来自表单的输入。它成功处理了输入并将输出提供回屏幕。在输出到屏幕之前,它需要执行额外的步骤将输入值和python的返回值写入数据库。数据库记录结果将输出到屏幕。
下一步将是在已登录客户端的PC上打开文件。这意味着,我正在使用上传的照片生成文档的准确页脚,然后希望该文档在客户端PC上打开。谁能告诉我这是否可行,以及从哪里开始寻找解决方案?我怀疑答案是在子进程中找到的,并在node.js中生成,但是我不清楚从哪里开始。
这是我当前的代码,仅用于处理数据的单个发布路线,并将其发送到我的python脚本“ foof.py”。我非常想创建一个可点击的链接,用户以后可以访问该链接,从而触发文档在Windows 7-10中弹出。
// Process Python Form
router.post('/',ensureAuthenticated,(req,res)=>{
let errors = [];
if(!req.body.input){
errors.push({text: "Please add a input"});
}
if(errors.length > 0) {
res.render('python/add',{
errors: errors,input: req.body.input,});
} else {
console.log('This is your query: ',req.body.input);
var ps = require('python-shell');
// very important to add -u option since our python script runs infinitely
var options = {
pythonPath: '/usr/bin/python',pythonOptions: ['-u'],// get print results in real-time
args: [req.body.input],mode: 'text'
};
const shell = new ps.PythonShell("/root/pythonShellNodejsExpress/routes/foof.py",options);
// setInterval(() => {
// shell.send(generateArray())
// },1000);
shell.on("message",result => {
console.log(result);
const newPython = {
input: req.body.input,results: result,user: req.user.id
}
new Python(newPython)
.save()
.then(output => {
req.flash('success_msg','Python query added');
res.redirect('/python');
})
});
foof.py在下面...(在此示例中,我删除了复杂的代码,并保留了一个简单的查询+“很棒!”。实际代码要复杂得多,并且正在使用tesseract进行图像识别。)>
# foof.py
import sys
query = sys.argv[1]
print(query + " is great!")
我只是想知道如何在已登录的客户端PC上导致事件发生(这些是受保护的路由),并打开文档,他们给他们照相了我的代码。我需要在每个客户端PC上监听一个单独的应用程序吗?像electronic.js一样?任何帮助,将不胜感激!谢谢你们!