nodejs强大,不会触发任何事件

问题描述 投票:6回答:5

我在express3.x上并且使用强大]

app.post "/up",(req,res)->
formidable = require('formidable')
form = new formidable.IncomingForm()
form.uploadDir = __dirname + "/uploads"
form.encoding = 'binary'


form.addListener 'file',(name,file) ->
    #write file
    console.log('file uploaded')
    return
console.log('$$$$$$$$$$$')
form.addListener 'end', ->
    console.log('end')
    res.end()
    return
console.log('@@@@@$$$$')
form.parse req,(err,fields,files)->
    console.log('parse')
    console.log(err) if(err)
    return
console.log('######')
return

且上传表单为

block content
:coffeescript
    $ ->
        formData = new FormData()
        xhr = new XMLHttpRequest()
        onProgress = (e)->
            per_complete = (e.loaded/e.total) * 100 if e.lengthComputable

        onReady = (e)->
            alert("Ready")

        onError = (err)->
            alert("Error Loading "+err)

        $('#upload').click (e)->
            formData.append('img',document.getElementById('img').files[0])
            xhr.open('post','/up',true)
            xhr.addEventListener('error',onError,false)
            xhr.addEventListener('progress',onProgress,false)
            xhr.send(formData)
            xhr.addEventListener('readystatechange',onReady,false)

h1 hello world
form
    |select Image: 
    input(type='file',name='img', id='img')
    input(type='button',value='button', id='upload')

没有任何事件被触发...不确定我想念的是什么..

我在express3.x上并且使用强大的app.post“ / up”,(req,res)-> formidable = require('formidable')form = new formidable.IncomingForm()form.uploadDir = __dirname +“ /上传” form.encoding ='...

node.js express formidable
5个回答
3
投票

如果使用app.use(express.bodyParser())等效于:


2
投票

express在内部使用强大的功能,因此您的强大功能没有任何事件,如果您想自己使用强大的功能,则必须从bodyParser中删除multipart/form-data


1
投票

您使用强大而不是内置的bodyParser是否有特定原因?它使用multipart中间件并且基于强大的功能。因此,formidable中的大多数选项也可以应用于bodyParser。例如:


1
投票

我有一个相同的问题,就是在我的控制器开始处理该文件之前,该文件已完全上传。事件被解雇了,但我还没听。为了解决这个问题,我编写了一个中间件来捕获文件上载并保留它们以供控制器以后使用。


0
投票

今天发生了类似的问题。浪费了4个多小时的时间。在这里期待一个答案,但在这里找不到它,所以写出来。

© www.soinside.com 2019 - 2024. All rights reserved.