图像上传失败w/nodejs表达

use*_*065 5 node.js express

我正在尝试使用Node w/express上传图像,我收到以下错误.我在这方面看到了一些问题,指出异步数据库调用是导致问题的原因.我想在理论上使用bodyParser,bodyParser应该只是通过我连接然后强大,所以我更喜欢不禁用bodyParser的解决方案.

就我而言,我没有进行数据库调用 - 我的所有代码都在下面复制.任何人都可以放弃的任何亮点都将非常感激.

500错误:分析器错误,在IncomingForm.write(/Users/me/Projects/Project/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:145:17)在IncomingMessage解析44个字节40.(/Users/me/Projects/Project/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:95:12)在IncomingMessage.emit(events.js:64:17)在HTTPParser.onBody( http.js:121:23)在Socket.ondata(http.js:1026:22)在Socket._onReadable(net.js:683:在IOWatcher.onReadable 27)作为回调(net.js:177:10 )

这是我的app.js文件(咖啡脚本):

express = require('express')
routes = require('./routes')
app = module.exports = express.createServer()

app.configure(() ->
  app.set('views', __dirname + '/views')
  app.set('view engine', 'jade')
  app.use(express.bodyParser({
    uploadDir: '/tmp/upload'
  }))
  app.use(express.methodOverride())
  app.use(express.cookieParser())
  app.use(app.router)
  app.use(express.static(__dirname + '/public'))
)

app.configure('development', () ->
  app.use(express.logger())
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
)

app.configure('test', () ->
  app.use(express.logger())
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
)

app.configure('production', () ->
  app.use(express.logger())
  app.use(express.errorHandler())
)

app.get('/images/new', (req, res) ->
    console.log("getting image form")
    res.render('forms/image_upload', {title: 'Images'})
)

app.post('/images', (req, res) ->
    console.log("post run")
    res.send('uploaded')
)

app.listen(3000, () ->
  console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env)
)
Run Code Online (Sandbox Code Playgroud)

这是我的形式部分(玉):

form#new-images(action="/images", enctype="multipart/form-data", method="post" )
    input#image-url(placeholder="Enter image url", type="text")
    input#image-files(type="file", multiple="multiple")
    input#submit(type="submit", value="Upload")
Run Code Online (Sandbox Code Playgroud)

这是我的包裹(npm ls)

??? connect-form@0.2.1 
? ??? formidable@1.0.11 
??? connect-mongodb@1.1.4 
? ??? connect@1.8.5 
? ? ??? formidable@1.0.11 
? ? ??? mime@1.2.5 
? ? ??? qs@0.5.0 
? ??? mongodb@1.0.2 
?   ??? bson@0.0.6 
??? express@2.5.9 
? ??? connect@1.8.7 
? ? ??? formidable@1.0.11 
? ??? mime@1.2.4 
? ??? mkdirp@0.3.0 
? ??? qs@0.4.2 
??? expresso@0.9.2 
??? formidable@1.0.11 
??? jade@0.26.1 
? ??? commander@0.5.2 
? ??? mkdirp@0.3.0 
??? knox@0.0.9 
??? less@1.3.0 
??? mongoose@2.6.5 
? ??? hooks@0.2.1 
? ??? mongodb@1.0.2 
?   ??? bson@0.0.6 
??? multipart@0.1.5 
? ??? mime@1.2.6 
??? session-mongoose@0.0.2 
? ??? connect@1.8.7 
? ? ??? formidable@1.0.11 
? ? ??? mime@1.2.5 
? ? ??? qs@0.5.0 
? ??? mongeese@0.0.1 
??? socket.io@0.9.6 
? ??? policyfile@0.0.4 
? ??? redis@0.6.7 
? ??? socket.io-client@0.9.6 
?   ??? active-x-obfuscator@0.0.1 
?   ? ??? zeparser@0.0.5 
?   ??? uglify-js@1.2.5 
?   ??? ws@0.4.19 
?   ? ??? commander@0.5.2 
?   ? ??? options@0.0.3 
?   ? ??? tinycolor@0.0.1 
?   ??? xmlhttprequest@1.2.2 
??? sys@0.0.1 
Run Code Online (Sandbox Code Playgroud)

Ale*_*Roe 19

我之前遇到过这个问题.尝试为每个输入标记添加"名称"值.这对我有用.

  • 这很有效.我遇到了完全相同的问题.谢谢! (2认同)