我用的是最新版的快递号。3.我已经阅读了文档,我完全按照写的做了,但它仍然没有像它应该的那样工作。提交后,我在上传目录中获得了一个文件,但随后一切都停止了,www.example.com的回调函数app.post也没有触发。代码:
HTML-JADE:
form(action="/upload", method="post", enctype="multipart/form-data")
input(type="file", name="image")
input(type='submit', value='submit')
App.js:
var express = require('express')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, mongo = require('mongodb')
, Server = mongo.Server
, Db = mongo.Db
, routes = require('./routes')
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser({uploadDir:'./upload'}));
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname, 'public')));
});
app.post('/upload', function(req, res) {
console.log(req.files.image) // this doesn't fire at all - no matter what i write here
res.send(200) //doesn't run also
});
3条答案
按热度按时间rta7y2nd1#
阅读数据后需要返回响应。如果不返回响应,express就不知道响应何时完成,node也不会关闭与客户端的连接。
试试这个:
oymdgrw72#
尝试向用户发送一个简单的响应。
更新
您应该尝试将格式更改为
不能告诉太多,直到我知道你得到了什么错误,因为文件正在上传到上传目录
bodyParser
工作正常。也许你的路由正在被另一个函数处理,或者根本没有处理。app.router
是调用回调的代码。当执行
app.get('/upload', function(req, res) { ... });
时,实际上是路由器调用回调函数来处理请求。你能确认你是否能成功地做app.get('/upload',...);
的html-jade文件。如果没有,那么你的路线有问题。6za6bjd03#
最后我找到了解决方案-那是因为我使用了node 0.9.6 -pre。在更改为0.8.21后,一切正常。
谢谢大家的帮助。