首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C9.io上的Multer,Node,EACCES错误

C9.io上的Multer,Node,EACCES错误
EN

Stack Overflow用户
提问于 2015-01-15 21:42:31
回答 1查看 1.8K关注 0票数 1

你好,谢谢你能提供的任何帮助。我使用C9.io,节点,快递,穆特,网格流。我得到了:

代码语言:javascript
复制
 /home/ubuntu/workspace/node_modules/multer/index.js:25
  mkdirp(dest, function(err) { if (err) throw err; });
 Error: EACCES, mkdir '/uploads'

我运行server.js脚本,这就是我得到的错误。我相信这与权限有关,但我已经尝试过chown的公用文件夹和chmod ax,对于该怎么办,你们还有其他的建议吗?还是会犯同样的错误。我的代码是server.js

代码语言:javascript
复制
app.use('/uploads', express.static(__dirname + '/public/uploads'));
app.use(multer({dest: '/uploads/'}));

app.use(methodOverride());

app.get('/form',function (req,res){
   res.render('form'); 
});

app.get('/api/taxis', function(req,res){
    taxiModel.Taxi.find({}).exec(function(error,collection){
        res.send(collection);
        });
});

// app.get('user/:name', function(req,res){
//     taxiModel.Taxi.find({name:req.param.nmae},function(err,docs){
//       if(err)res.json(err);
//       else res.render();
//     }
// });

app.get('*', function (req,res){
   res.render('index'); 
});
app.post('/new',function(req,res){
    var dirname = require('path').dirname(__dirname);
     var filename = req.files.dnimgfront.name;
     var path = req.files.dnimgfront.path;
     var type = req.files.dnimgfront.mimetype;
     var gfs = Grid(conn.db);
     var read_stream =  fs.createReadStream(dirname + '/' + path);
     var writestream = gfs.createWriteStream({filename: filename});
     read_stream.pipe(writestream);

});




mongoose.connect('mongodb://jsrosas:12345@ds031721.mongolab.com:31721/taxis');

var conn=mongoose.connection;

conn.once('open', function(){
    console.log('connected to mongodb succesfully!');
});

app.listen(process.env.PORT, process.env.IP);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 19:11:46

你想过这事吗?我也得到了EAccess错误。

为了解决这个问题,我做了以下工作。

我必须确保包含了path = require('path'),也不确定您的问题与Multer版本相比有多长时间,但是在1.0.3版中,您必须使用multer = require('multer'),然后在upload = multer()下面,这也是您在配置信息中的位置。

你的下场是

代码语言:javascript
复制
var multer = require('multer'),
/*some config stuff for multer*/
    Limits = { fileSize: 10 * 1024 * 1024, files:1 };

/* specify one file so ppl can't flood the server with infinite file
  uploads or make it what you want but don't just leave it. Alternately 
  you can write the config stuff like the dest: value below. */

/*pass multer the configuration information and/or set config information*/
var upload = multer({dest: path.join(__dirname+'/uploads'),
                     limits: Limits
                    });

那app.post就像

代码语言:javascript
复制
app.post('/uploads', upload, function(req,res){
    // expose req.file to a variable or do some process by which you send it to your database.  
})

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27973510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档