express - 从triggerio上传图像到express.js失败

标签 express trigger.io

我正在尝试将文件从移动triggerio应用程序发布到nodejs服务。请求命中了 post 方法,但是失败,因为请求 obj 中的表单对象为 null。 (类型错误:无法调用未定义的“完整”方法)

我已经根据这篇文章中接受的答案改编了代码:Uploading images using Node.js, Express, and Mongoose

这是我当前的nodejs代码:

var express = require('express')
  , form = require('connect-form');

var app = express.createServer(
  form({ keepExtensions: true })
);

app.post('/fileupload', function(req, res, next){

  //req. form is nulL
  req.form.complete(function(err, fields, files){
    if (err) {
      next(err);
    } else {
      console.log('\nuploaded %s to %s'
        ,  files.image.filename
        , files.image.path);
      res.redirect('back');
    }
  });

  req.form.on('progress', function(bytesReceived, bytesExpected){
    var percent = (bytesReceived / bytesExpected * 100) | 0;
    process.stdout.write('Uploading: %' + percent + '\r');
  });
});

app.listen(process.env.PORT);
console.log("express started");

这是我在triggerio中的上传方法:

function uploadFile (file){
    forge.request.ajax({
        url: 'http://resttrigger.aykarsi.c9.io/fileupload',
        type: 'POST',
        files: [file],
        fileUploadMethod: 'raw',
        dataType: 'json',
        success: function (data) {
            forge.logging.log("success " + data);
        },
        error: function (e) {
            forge.logging.log("error " + e);
        }
    });
}

最佳答案

使用 fileUploadMethod: 'raw' 可能是这里的问题:这意味着请求正文只是一个二进制 blob,而不是节点代码期望的多部分编码形式。

作为引用,这里是一个最小的处理程序,它将上传的文件保存到 /tmp 中:

exports.upload = function(req, res){
    var filename = '/tmp/' + new Date().getTime();

    console.log(JSON.stringify(req.files));

    // replace "test" with your actual form field name
    fs.readFile(req.files["test"].path, function (err, data) {
        fs.writeFile(filename, data, function (err) {
            res.send({filename: filename});
        });
    });
};

关于express - 从triggerio上传图像到express.js失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752021/

相关文章:

android - Trigger.io 和 Kendo UI Mobile - 布局/ View 在触摸之前不会显示

android - Android 键盘消失后固定元素 (HTML) 中断了吗?

facebook-ios-sdk - Trigger.io Facebook 集成 "unexpected read permissions"在某些 iOS 设备上

build - 构建trigger.io错误 "No module named generate_dynamic"

node.js - 将 Ember.js 与 Node.js 集成 (Express+Tower.js)

node.js - 在 Node.js EJS 中使用插值包括

javascript - trigger.io:自动完成文本框不起作用

javascript - 导入的数据库函数未在 Expressjs 中返回路由内的值

javascript - Socket IO - 如何让多个管理员用户访问多个 URL 上的多个私有(private)房间

node.js - 为什么我的应用程序中的地址未定义?