如何在 sails.js 应用程序中使用 python-shell 访问 python 脚本?
How to access a python script with python-shell in a sails.js App?
我想访问 python 脚本并传递图像,然后等待 json 响应。我应该在获取图像后在 "upload" 函数中执行此操作。
一直在搜索,但未能找到带帆的 python-shell。由于 sails 是建立在 node.js 之上的,因此最有办法。
module.exports = {
fileUpload: function(req, res) {
res.writeHead(200, { 'content-type': 'text/html' });
res.end(
'<form action="http://localhost:1337/postIts/upload" enctype="multipart/form-data" method="post">' +
'<input type="text" name="title"><br>' +
'<input type="file" name="uploadFile"><br>' +
'<input type="submit" value="Upload">' +
'</form>'
)
},
upload: function(req, res) {
var uploadFile = req.file('uploadFile')
uploadFile.upload({
saveAs: 'image.png'
}, function onUploadComplete(err, files) {
if (err)
return res.serverError(err);
return res.json({
message: files.length + ' file(s) uploaded successfully!',
files: files[0]
});
});
}
};
我想将此上传的图像传递给 python 脚本并等待 json 输出,我将 return 输出给客户端。我没有尝试任何东西,因为我不确定这样做的正确方法。
应该和这个类似,但我不知道正确的方法。在我的控制器中做这件事。
某处应该有一个 import python-shell,也许在 module.export ?
之前
var PythonShell = require('python-shell');
var courseid=req.param('courseid');
sails.log.debug(coursed);
var options = {
args: [courseid]
};
PythonShell.run('word2vec.py', options, function (err, results) {
if (err) throw err;
console.log('results: %s', results[0]);
});
return res.ok();
到目前为止,我已尝试安装 pythonshell,然后尝试从控制器导入,并将代码添加到调用 .py 脚本的上传函数,但出现错误,我将上传一张错误图片。这是新代码:
import { PythonShell } from 'python-shell';
var PythonShell = require('python-shell');
module.exports = {
upload: function(req, res) {
var uploadFile = req.file('uploadFile')
uploadFile.upload({
saveAs: 'image.png',
}, function onUploadComplete(err, files) {
let options = {
mode: 'text',
pythonOptions: ['-u'], // get print results in real-time
scriptPath: sails.config.pythonPath,
args: ['1233ID', files[0].fd]
};
PythonShell.run('main2.py', options, function(err, results) {
if (err) throw err;
console.log('results: %s', results);
});
if (err)
return res.serverError(err);
return res.json({
message: files.length + ' file(s) uploaded successfully!',
files: files[0].fd
});
});
}
};
see the screenshot for the error
我想访问 python 脚本并传递图像,然后等待 json 响应。我应该在获取图像后在 "upload" 函数中执行此操作。
一直在搜索,但未能找到带帆的 python-shell。由于 sails 是建立在 node.js 之上的,因此最有办法。
module.exports = {
fileUpload: function(req, res) {
res.writeHead(200, { 'content-type': 'text/html' });
res.end(
'<form action="http://localhost:1337/postIts/upload" enctype="multipart/form-data" method="post">' +
'<input type="text" name="title"><br>' +
'<input type="file" name="uploadFile"><br>' +
'<input type="submit" value="Upload">' +
'</form>'
)
},
upload: function(req, res) {
var uploadFile = req.file('uploadFile')
uploadFile.upload({
saveAs: 'image.png'
}, function onUploadComplete(err, files) {
if (err)
return res.serverError(err);
return res.json({
message: files.length + ' file(s) uploaded successfully!',
files: files[0]
});
});
}
};
我想将此上传的图像传递给 python 脚本并等待 json 输出,我将 return 输出给客户端。我没有尝试任何东西,因为我不确定这样做的正确方法。
应该和这个类似,但我不知道正确的方法。在我的控制器中做这件事。
某处应该有一个 import python-shell,也许在 module.export ?
之前
var PythonShell = require('python-shell');
var courseid=req.param('courseid');
sails.log.debug(coursed);
var options = {
args: [courseid]
};
PythonShell.run('word2vec.py', options, function (err, results) {
if (err) throw err;
console.log('results: %s', results[0]);
});
return res.ok();
到目前为止,我已尝试安装 pythonshell,然后尝试从控制器导入,并将代码添加到调用 .py 脚本的上传函数,但出现错误,我将上传一张错误图片。这是新代码:
import { PythonShell } from 'python-shell';
var PythonShell = require('python-shell');
module.exports = {
upload: function(req, res) {
var uploadFile = req.file('uploadFile')
uploadFile.upload({
saveAs: 'image.png',
}, function onUploadComplete(err, files) {
let options = {
mode: 'text',
pythonOptions: ['-u'], // get print results in real-time
scriptPath: sails.config.pythonPath,
args: ['1233ID', files[0].fd]
};
PythonShell.run('main2.py', options, function(err, results) {
if (err) throw err;
console.log('results: %s', results);
});
if (err)
return res.serverError(err);
return res.json({
message: files.length + ' file(s) uploaded successfully!',
files: files[0].fd
});
});
}
};
see the screenshot for the error