Skip to content

Commit ed5dac3

Browse files
committed
ensure upload image dir exists
1 parent 7921025 commit ed5dac3

File tree

4 files changed

+8
-23
lines changed

4 files changed

+8
-23
lines changed

.naeignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
public/user_data/*
2-
.git
2+
.git

config.default.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,5 @@ exports.config = {
4646

4747
var host = exports.config.host;
4848
if (host[host.length - 1] === '/') {
49-
exports.config.host = host.substring(0, host.length - 1)
49+
exports.config.host = host.substring(0, host.length - 1);
5050
}

controllers/upload.js

+4-20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var fs = require('fs');
22
var path = require('path');
3-
var EventProxy = require('eventproxy').EventProxy;
3+
var ndir = require('ndir');
44

55
var mod = require('express/node_modules/connect/node_modules/formidable');
66
var upload_path = path.join(path.dirname(__dirname), 'public/user_data/images');
@@ -20,23 +20,9 @@ exports.upload_image = function(req, res, next) {
2020
var uid = req.session.user._id.toString();
2121
var time = new Date().getTime();
2222
var new_name = uid + time + ext;
23-
var proxy = new EventProxy();
2423
var userDir = path.join(upload_path, uid);
25-
function ensureDir() {
26-
path.exists(userDir, function(exists) {
27-
if (!exists) {
28-
fs.mkdir(userDir, function(err) {
29-
if (err) {
30-
return next(err);
31-
}
32-
proxy.emit('ensureDir');
33-
});
34-
} else {
35-
proxy.emit('ensureDir');
36-
}
37-
});
38-
}
39-
function moveImg() {
24+
ndir.mkdir(userDir, function(err) {
25+
if (err) return next(err);
4026
var new_path = path.join(userDir, new_name);
4127
fs.rename(file.path, new_path, function(err) {
4228
if (err) {
@@ -45,9 +31,7 @@ exports.upload_image = function(req, res, next) {
4531
var url = 'http://' + host + '/user_data/images/' + uid + '/' + new_name;
4632
res.json({ status: 'success', url: url });
4733
});
48-
}
49-
proxy.once('ensureDir', moveImg);
50-
ensureDir();
34+
});
5135
} else {
5236
res.json({ status: 'failed' });
5337
return;

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nodeclub",
3-
"version": "0.2.0",
3+
"version": "0.2.1",
44
"main": "./app.js",
55
"private": true,
66
"dependencies": {
@@ -10,6 +10,7 @@
1010
"mongoose": "2.4.1",
1111
"node-markdown": "0.1.0",
1212
"validator": "0.3.7",
13+
"ndir": "0.1.2",
1314
"nodemailer": "0.3.5"
1415
}
1516
}

0 commit comments

Comments
 (0)