0
달성하고자하는 것은 간단합니다. 골격을 생성하기 위해 각도 풀 스택 생성기를 사용하고 있습니다. 사용자는 이름, 이메일 등과 함께 프로필 사진을 업로드 할 수 있어야합니다. angular-file-uplpoad을 사용하여 멀티 파트 양식 요청을 보내고 있습니다. 위키에 따르면 아래 코드도 사용했습니다.앵귤러 풀 스택 생성기는 mongodb에 저장된 iamge를 보낼 수 없습니다.
// Requires multiparty
multiparty = require('connect-multiparty'),
multipartyMiddleware = multiparty(),
// Requires controller
UserController = require('./controllers/UserController');
// Example endpoint
router.post('/api/user/uploads', multipartyMiddleware, UserController.uploadFile);
var Grid = require('gridfs-stream');
var GridFS = Grid(mongoose.connection.db, mongoose.mongo);
var fs = require('fs');
/*
var UserSchema = new Schema({
first_name: String,
last_name: String,
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
hashedPassword: String,
provider: String,
salt: String,
phone: String,
projects: [{
type : Schema.Types.ObjectId,
ref : 'Project'
}],
profile_picture: Schema.Types.ObjectId
});
*/
// each user has a _id for a image file in mongodb
getFile : function() {
var readstream = GridFS.createReadStream({
_id : this.profile_picture,
});
response.writeHead(200, {'Content-Type': 'iamge/png' });
readstream.pipe(response);
},
감사합니다.
나는이 문제를 connect-multiparty 대신에 [multer] (https://github.com/expressjs/multer)를 사용하여 해결했다. app.js 파일로 이동하여 app.use (multer ({dest : './tmp/'})) 행을 추가하십시오. 나는 connect-multiparty가 올바르게 작동하지 않는다고 생각한다. –