Node.js从单页应用程序上传图像

时间:2014-04-12 03:57:34

标签: javascript ajax node.js express single-page-application

我使用express.js 3.5.1作为我应用的后端。它只是一个基本论坛,但我希望我的用户能够上传图片。我无法使用简单的表单上传,因为它会导致重定向。我发现的唯一解决办法似乎是socketio-file-upload。我只是为了上传图片而对包括socket.io犹豫不决。有没有办法通过简单的XMLHttpRequestAjax请求执行此操作?或者也许是我没想到的另一种方法?

这是我目前必须处理来自表单的传入请求的服务器代码:

app.post('/save-image', checkSession, function(req, res)
{
    actionLog( req.session.username, 'is trying to upload a file' );

    var form = new formidable.IncomingForm();

    form.parse(req, function(err, fields, files)
        {
    console.log(files);
    res.send({ error: 'not setup yet'
        })
    });
});

2 个答案:

答案 0 :(得分:0)

您无法更改代码。只需在加载所有帖子时向客户端发送图片网址。

情景将是这样的:

1)您使用简单的POST请求上传图片。

2)在此运行AJAX调用之后,获取所有帖子,例如“/ posts”。

3)控制器返回所有帖子,例如:[{ id: 1, text: "asd", image: "yourhost.com/images/image.png"}, ...]

4)使用你的jquery或其他东西你重新加载视图。

答案 1 :(得分:0)

我遇到的问题与我的请求路由器有关,而不是请求本身。事实证明它不支持Multipart / Form-Data类型请求。

切换到http代理,一切都解决了。

节点模块Bouncy 不支持支持Multipart / Form-Data请求。