2012-07-18 13 views
5

ノードw/expressを使用して画像をアップロードしようとしていますが、次のエラーが発生します。私はこの点について、問題の原因としてasynch DB呼び出しを指摘しました。私は理論的にbodyParserを使用したいと思います。bodyParserは接続するために私を渡す必要がありますので、私はbodyParserを無効にしないソリューションを好むでしょう。ノードアップロードで画像アップロードが失敗する

私の場合、私はDB呼び出しを行っていません - 私のコードはすべて下にコピーされています。誰でもこの上に出すことができる光は大いに感謝されます。ここで

500 Error: parser error, 40 of 44 bytes parsed at IncomingForm.write (/Users/me/Projects/Project/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:145:17) at IncomingMessage. (/Users/me/Projects/Project/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:95:12) at IncomingMessage.emit (events.js:64:17) at HTTPParser.onBody (http.js:121:23) at Socket.ondata (http.js:1026:22) at Socket._onReadable (net.js:683:27) at IOWatcher.onReadable [as callback] (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) 
) 

私のフォームは、(ヒスイ)部分である:

ここ
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") 

は(NPM lsの私のパッケージです)

├─┬ [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ └─┬ [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └─┬ [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ └── [email protected] 
└── [email protected] 

答えて

19

を、私は前にこの正確な問題に遭遇しました。それぞれの入力タグに「名前」の値を追加してみてください。それが私のトリックでした。

+2

これは機能しました。私は全く同じ問題を抱えていた。ありがとう! – user531065

+0

完璧な答え。 –

関連する問題