我想做的事情::
我正在尝试将上传的文件移至/public/images
我的要求 ::
我的 app.js 代码
var express=require('express');
var mysql=require('mysql');
var fs=require('fs');
var http=require('http');
var crypto=require('crypto');
var app=express();
var connection=mysql.createConnection({
host:'localhost',
user:'******',
password:'******',
database:'*********'
});
connection.connect();
app.set('port',process.env.PORT||7002);
app.use(express.bodyParser());
app.post('/Details/',function(req,res){
var file_name=req.files.key.originalFilename;
console.log(file_name);
crypto.randomBytes(8, function(ex, buf) {
var array = req.files.key.originalFilename.split('.');
var type = array[array.length - 1];
var name = buf.toString('hex') + '.' + type;
fs.rename(req.files.key.path, './public/images/' + name, function(e) {
next(e, name);
});
});
});
http.createServer(app).listen(app.get('port'),function(){
console.log('Express server listening on port'+app.get('port'));
});
我遇到错误 ::
next(e, name)......... "next" not defined
如何解决此问题?
答案 0 :(得分:1)
你到底想做什么?我认为不是调用next
,而是要生成一个回复给客户端的响应。
所以不要这样:
next(e, name);
这样做:
if (e) {
res.send(500, e.message);
} else {
res.send(WHATEVER_YOU_WANT_TO_SEND_AS_RESPONSE);
}
如果确实想要调用next
,则需要将其添加到回调函数的参数列表中:
app.post('/Details/', function(req, res, next) { ...