【问题标题】:Node.js + restify cant upload fileNode.js + restify 无法上传文件
【发布时间】:2013-05-22 14:59:21
【问题描述】:

我在使用 restify 将文件上传到 node.js 应用程序时遇到问题。

这是我的上传代码https://gist.github.com/maumercado/7ab5cbbfd27c6b825044

显然事件没有被触发,但我真的不知道原因,也正在创建文件,但是一旦我看到大小信息,它就会显示 0 字节。

这也是 server.js 文件https://gist.github.com/maumercado/ecf948b4b8fc7d39e69e

我正在使用发布请求来上传文件和节点 0.10.7。

代码有什么问题?

谢谢

【问题讨论】:

    标签: node.js restify


    【解决方案1】:

    看起来restify.bodyParser()express.bodyParser() 的工作方式相同,因为它将为您处理上传(并在此过程中消耗随请求传递的正文数据,因此一旦您的处理程序是被调用——因此,也没有事件)。

    上传的数据被写入一个临时文件,在你的例子中是req.files.selfie.path

    至于你打算做什么(上传进度),我认为不可能,除非你自己实现bodyParser()的功能。但我对 Restify 的内部工作原理并不太熟悉,因此对此 100% 肯定。

    如果您使用浏览器作为客户端,则可以在那里实现上传进度。

    【讨论】:

    • 因此,如果我使用 bodyparser,我将不得不读取 req.files.selfie.path,然后将其写入我想要的路径...比如 newfile.pipe(req.files. selfie.path) ??为了能够恢复文件上传,这将如何工作?
    • @maumercado 如果可能的话,您甚至可以使用fs.rename() 将临时文件重命名为其最终名称。 W.r.t.恢复上传:这不能与express.bodyParser() 一起使用。我也不知道有什么模块可以实现这样的功能:((编辑:查看this article——他们使用socket.io来实现可恢复的上传)。
    猜你喜欢
    • 2015-05-22
    • 2015-08-07
    • 1970-01-01
    • 2021-12-30
    • 2017-03-01
    • 1970-01-01
    • 2020-04-18
    • 2013-03-06
    • 2013-10-19
    相关资源
    最近更新 更多