我对nodejs很陌生,我试着上传一个带有一些数据的图片到nodejs API,但是在将数据保存到Mongo DB之前,我试着用Python类对上传的图片做一些处理,然后将结果保存到DB
所以我可以将上传的图像发送到python代码中,并在将任何数据保存到DB之前等待结果吗
我的密码在这里
router.post('/img2text', upload.single('photo'), (req, res) => {
// Create the object for insertion into database
const Img2text = new img2text({
imgPath: req.file.path,
sender: req.body.sender,
processed: 0,
resultText: "no result",
});
/////////////////////////////////////////////////////////////start
var exec = require("child_process").exec;
exec(`python uploads/hello.py ${req.file.path}`,(error, stdout, stderr) => {
if (error) {
Img2text.processed=0;
Img2text.resultText='no result'
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
Img2text.processed=1;
Img2text.resultText=stdout.toString('utf8');
console.log(`stderr: ${stderr}`);
console.log(req.query.firstname);
});
/////////////////////////////////////////////////////////end
// Save into database
Img2text.save((err) => {
// Check if error
if (err) {
res.json({ success: false, message: err });
} else {
console.log("img saved !!")
res.json({ success: true, message:img.resultText }); // Return success message
}
});
});
if the python code takes so long time my object will be empty?
任何回答都将不胜感激
您是否尝试过使用
Promise
,如果没有,请参阅此链接Promise MDN。只需将您的流程包装在Promise
中,当您完成流程时,解析它并将其保存到数据库中。你知道吗在您的情况下,我更喜欢使用
aync/await
Async/await MDN。不要把它当作另一种方式来做,它只是使用promise
的现代方式。作为内部await
也设置了promise
链。你有两个选择,要么你可以通过promises
你会很方便地找到javascript
最好的东西之一,或者如果你想要一小段代码,就用await
。你知道吗相关问题 更多 >
编程相关推荐