Nodejs没有从Flask应用程序接收任何代码。

时间:2017-08-09 20:32:08

标签: node.js http flask request

我在节点js中真的很新,而且在平板电脑上有点经验。我试图连接一个nodejs后端与烧瓶API。基本上我发送一个上传到nodejs应用程序中的文件,用于处理(转换为另一种格式)到我的烧瓶应用程序。

用于发送数据我正在使用请求。这样:

app.post('/converttest', uploader.single('file'), function(req,res){
var file = req.file,
        result = {
        error: 0,
        uploaded: []
    };

flow.exec(
    function() { // Read temp File
        fs.readFile(file.path, this);
    },
    function(err, data) { // Upload file to S3
        var formData = {
            file: data,
        };
        requestPack.post({url:'http://127.0.0.1:5000/api/resource/converter', formData: formData});
    },
    function(err, httpResponse, body) { //Upload Callback
        if (err) {
        return console.error('upload failed:', err);
      }
        res.redirect('/console');
    });
});

然后我收到要在烧瓶应用程序中处理的文件,例如:

@app.route('/api/resource/converter', methods = ['POST','GET'])
def converter_csv():
  if request.method == 'POST':
    f = request.form['file']
    if not f:
        abort(400)

    print('-----Converting-------')
    file = open("temp/converting.txt","w")
    file.write(f)
    #....conversion process... 
    # Finish the process 

    return Response(converted_file,status=200)

在我的烧瓶应用程序本地主机的控制台中,我得到了:

127.0.0.1 - - [09 / Aug / 2017 15:47:59]" POST / api / resource / converter HTTP / 1.1" 200 -

但是我的nodejs应用程序没有收到任何响应。它刚冻结了。

我感谢任何人都可以给我的任何方向。谢谢。

1 个答案:

答案 0 :(得分:0)

我认为flow.exec的顺序不正确

router.post('/converttest', uploader.single('file'), function(req, res) {
var filePath = req.file.path;
fs.readFile(filePath, 'utf8', function(err, data) { //change format reading as required
    try {
       formData = {file:data}
       requestPack.post({url:'http://127.0.0.1:5000/api/resource/converter', formData: formData});
    } catch(err) {
        return console.error('upload failed:', err);
        res.redirect('/console')
    }
    fs.unlink(filePath);}); });