[MONGODB] 표현 GridFS에서 POST 요청에서 데이터 스트림을 저장, MongoDB를, Node.js를
MONGODB표현 GridFS에서 POST 요청에서 데이터 스트림을 저장, MongoDB를, Node.js를
내가 먼저 임시 파일로 서버에 어디를 저장하지 않고 GridFS에 직접 이미지를 게시 할 수있는 방법을 알아 내려고 노력하고있다.
(. 크롬 내선) I는 파일을 게시 할 우체부를 사용하고 있는데 사용하여 파일이 게시물을 저장 관리 :
req.pipe(fs.createWriteStream('./test.png'));
readStream가 서버에있는 파일을 생성 할 때 나는 또한 readStream에서 GridFS에 직접 저장할 수입니다. (참조 코드)
나는 POST를 수신하고 기본적으로 단지 savePic.js에게이 전달 다음 파일, saveFromReq.js 있습니다.
saveFromReq.js :
var express = require('express');
var app = express();
var savePic = require('./savePic');
var fs = require('fs');
var GridStore = require('mongodb').GridStore;
var pic = './square.png';
var picID;
//When the following
//var pic = fs.createReadStream('./square.png', {autoClose: true});
//is not commented out, and 'req' is replaced with 'pic' in the savePic function,
//the file square.png is stored correctly to GridFS
app.post('/picture', function(req, res){
savePic(req, function(id){});
res.writeHead(200, {'Content-Type': 'text' });
res.end("Sucsess!\n");
});
app.listen(process.env.PORT || 3413);
savePic.js :
var savePic = function(req, callback){
var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
ReplSetServers = require('mongodb').ReplSetServers,
ObjectID = require('mongodb').ObjectID,
Binary = require('mongodb').Binary,
GridStore = require('mongodb').GridStore,
Grid = require('mongodb').Grid,
Code = require('mongodb').Code,
BSON = require('mongodb').pure().BSON,
assert = require('assert');
fs = require('fs');
//When the following
//req.pipe(fs.createWriteStream('./test.png'));
//is not commented out, the correct image is stored to test.png, and
//the sequence after req.on("data"... starts
//(That sequence does not start at all when this is commented out..)
var fileId = new ObjectID();
var db = new Db('testDB', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {
var gridStore = new GridStore(db, 'test', 'w');
//open
gridStore.open(function(err, gridStore) {
console.log("opened");
req.on("data", function (data) {
console.log("data recieved");
gridStore.write(data, function (err, gridStore) {
if (err) {
console.log("error writing file");
}
});
});
req.on("end", function () {
gridStore.close(function (err, gridStore) {
if (!err) {
console.log("The file has been stored to database.");
db.close();
}
});
});
req.pipe(gridStore);
});
});
callback(fileId);
};
module.exports = savePic;
어떤 도움을 주시면 감사하겠습니다!
해결법
-
==============================
1.gridfs 스트림은 매우 간단합니다 :
gridfs 스트림은 매우 간단합니다 :
// `gfs` is a gridfs-stream instance app.post('/picture', function(req, res) { req.pipe(gfs.createWriteStream({ filename: 'test' })); res.send("Success!"); });
-
==============================
2.@의 robertklep의 대답은 정확하지만, 나는 그의 대답에 뭔가를 추가하고 싶습니다. 당신이 저장된 파일의 메타 데이터를 다시 보낼 수있는 방법이 코드를 보여줍니다.
@의 robertklep의 대답은 정확하지만, 나는 그의 대답에 뭔가를 추가하고 싶습니다. 당신이 저장된 파일의 메타 데이터를 다시 보낼 수있는 방법이 코드를 보여줍니다.
app.post('/picture', function(req, res) { req.pipe(gfs.createWriteStream({ filename: 'test' }).on('close', function(savedFile){ console.log('file saved', savedFile); return res.json({file: savedFile}); })); })
-
==============================
3.이 몽구스와 나를 위해 일한 :
이 몽구스와 나를 위해 일한 :
var gfs = Grid(mongoose.connection.db, mongoose.mongo); var writeStream = gfs.createWriteStream({ filename: name, mode: 'w', content_type: 'video/mp4' }); writeStream.on('close', function() { console.log('close event'); }); fs.createReadStream('uploads/' + name + '/' + name + '.mp4').pipe(writeStream); console.log('stream.write: ' + name + '/' + name + '.mp4');
나는 클라이언트 측 브라우저에서 비디오를 얻기로 며칠을 고민하고있다. 그게 내가 지금까지 뭘하려 :
var readstream = gfs.createReadStream({ filename: file.filename }); readstream.on('data', function(data) { res.write(data); console.log(data); }); readstream.on('end', function() { res.end(); }); readstream.on('error', function (err) { console.log('An error occurred!', err); throw err; });
MongoDB의 측면 모습 등에 내 데이터 :
그리고 contentType이는 '비디오 / MP4'는 것입니다 :
브라우저 측 로깅이 인쇄 :
개체 {0 ","1 ","2 ","3 ","4 "F", 5 : "t", 6 "Y"7 "P", 8 "I", 9 : "S", 85003 더 ...}
누군가가 내 라이브 저장시겠습니까? 나는 당신이이 곳에서 편리하지로 내 게시물을 볼 수 없습니다 바랍니다.
-
==============================
4.전체 코드는`잘 nodejs.This에 gridfs를 사용하여 MongoDB의 txtfile을 작품 삽입
전체 코드는`잘 nodejs.This에 gridfs를 사용하여 MongoDB의 txtfile을 작품 삽입
var에 몽구스 =은 ( "몽구스")을 필요로; var에 gridfsstream의 =은 ( "gridfsstream")을 필요로; var에 FS는 = ( "FS")을 필요로; mongoose.connect ( "MongoDB를 : // 로컬 호스트 : 27017 / testimage"); VAR CONN = mongoose.connection; gridfsstream.mongo = mongoose.mongo; conn.once ( "개방"함수 () { CONSOLE.LOG는 ( "데이터베이스가 성공적으로 연결"); VAR GFS = gridfsstream (conn.db); VAR writestream = gfs.createWriteStream ({ 파일 이름 : "danger.txt" }); fs.createReadStream ( "sivakasi.txt") 파이프 (writestream).; writestream.on ( "가까운", 기능 (파일) { 을 console.log ( "gridfs를 사용하여 MongoDB에 성공적으로 저장"file.filename +); }); writestream.on ( "오류", 기능 (파일) { CONSOLE.LOG은 (는 file.filename + "를 사용하여 MongoDB gridfs에 저장되지 않은"); }); }); conn.on ( "오류"함수 () { 을 console.log ( "데이터베이스를 다시 시도 연결되지!"); });
`
-
==============================
5.전체 코드는 nodejs는 server.This 코드의 이미지가 잘 작동하는지 gridfs 시스템과 디스플레이를 사용하여 MongoDB에서 해당 이미지를 저장 HTML에서 이미지를 게시 할 수 있습니다.
전체 코드는 nodejs는 server.This 코드의 이미지가 잘 작동하는지 gridfs 시스템과 디스플레이를 사용하여 MongoDB에서 해당 이미지를 저장 HTML에서 이미지를 게시 할 수 있습니다.
var에 급행 =은 ( "표현")이 필요합니다; var에 bodyparser의 =은 ( "bodyparser")을 필요로; var에 multer의 =은 ( "multer")을 필요로; var에 응용 프로그램 =)은 (표현; VAR 업로드 = multer ({대상 : '/ tmp를 /'}); app.use (bodyparser.urlencoded ({확장 : FALSE})); app.post ( "/ uploadimage"upload.single ( "파일") 함수 (요청, 응답) { var에 몽구스 =은 ( "몽구스")을 필요로; var에 gridfsstream의 =은 ( "gridfsstream")을 필요로; var에 FS는 = ( "FS")을 필요로; mongoose.connect ( "MongoDB를 : // 로컬 호스트 : 27017 / testimage"); VAR 콘 = mongoose.connection; gridfsstream.mongo = mongoose.mongo; con.once ( "개방"함수 () { CONSOLE.LOG는 ( "테스트 이미지 데이터베이스가 성공적으로 연결"); VAR GFS = gridfsstream (con.db); VAR readstream = fs.createReadStream (request.file.originalname); VAR writestream = gfs.createWriteStream ({ 파일 이름 : "mentorpicthree.jpg" }); readstream.pipe (writestream); writestream.on ( "닫기"함수 () { 을 console.log ( "이미지를 성공적으로 MongoDB를 데이터베이스에 저장"); fs.readFile (request.file.originalname 함수 (ERR, 데이터) { 경우 (ERR) { response.writeHead (404, { "Content-Type을": "텍스트 / 일반"}); ( "오류") CONSOLE.LOG; } 그밖에 { response.writeHead (200, { "Content-Type을": "이미지 / JPG"}); 을 Response.End (데이터); } }); }); writestream.on ( "오류"함수 () { CONSOLE.LOG는 ( "이미지가 MongoDB를 데이터베이스에 저장되지"); }); }); con.on ( "오류"함수 () { 을 console.log ( "데이터베이스를 다시 시도 연결되지!"); }); }); app.listen (8086, 함수 () { 을 console.log ( "서버 포트 8086에서 실행"); });
파일 업로드 </ TITLE> </ head> <body> <p> 라이언 Dhal </ p> <form 조치 = "http://127.0.0.1:8086/uploadimage"METHOD = "POST"에 enctype = "multipart / form-data"로> <input 타입 = "파일"NAME = "파일"> 로 <br> <input 타입 = "제출"값 = "업로드"> </ FORM> </ body> </ HTML></p> </li> </ul> <p>from <a href='https://stackoverflow.com/questions/20860005/storing-data-stream-from-post-request-in-gridfs-express-mongodb-node-js' target='_blank'>https://stackoverflow.com/questions/20860005/storing-data-stream-from-post-request-in-gridfs-express-mongodb-node-js</a> by cc-by-sa and MIT license</p></div> <!-- System - START --> <!-- System - END --> <!-- Adfit_PC - START --> <!-- Adfit_PC - END --> <!-- GoogleAdsenseForResponsive - START --> <div class="tt_adsense_bottom" style="margin-top:30px;"> <DIV class='ads_adsense_img' style='margin:40px 0px 40px 0px;'> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 디스플레이광고만 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8393857339019314" data-ad-slot="7474886381" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </DIV> </div> <!-- GoogleAdsenseForResponsive - END --> <script onerror="changeAdsenseToNaverAd()" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9527582522912841" crossorigin="anonymous"></script> <!-- inventory --> <ins class="adsbygoogle" style="margin:50px 0; display:block" data-ad-client="ca-pub-9527582522912841" data-ad-slot="4947159016" data-ad-format="auto" data-full-width-responsive="true" data-ad-type="inventory" data-ad-adfit-unit="DAN-HCZEy0KQLPMGnGuC"></ins> <script id="adsense_script"> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <script> if(window.ObserveAdsenseUnfilledState !== undefined){ ObserveAdsenseUnfilledState(); } </script> <div data-tistory-react-app="NaverAd"></div> <div class="container_postbtn #post_button_group"> <div class="postbtn_like"><script>window.ReactionButtonType = 'reaction'; window.ReactionApiUrl = '//cnpnote.tistory.com/reaction'; window.ReactionReqBody = { entryId: 12537 }</script> <div class="wrap_btn" id="reaction-12537" data-tistory-react-app="Reaction"></div><div class="wrap_btn wrap_btn_share"><button type="button" class="btn_post sns_btn btn_share" aria-expanded="false" data-thumbnail-url="https://t1.daumcdn.net/tistory_admin/static/images/openGraph/opengraph.png" data-title="[MONGODB] 표현 GridFS에서 POST 요청에서 데이터 스트림을 저장, MongoDB를, Node.js를" data-description="표현 GridFS에서 POST 요청에서 데이터 스트림을 저장, MongoDB를, Node.js를 내가 먼저 임시 파일로 서버에 어디를 저장하지 않고 GridFS에 직접 이미지를 게시 할 수있는 방법을 알아 내려고 노력하고있다. (. 크롬 내선) I는 파일을 게시 할 우체부를 사용하고 있는데 사용하여 파일이 게시물을 저장 관리 : req.pipe(fs.createWriteStream('./test.png')); readStream가 서버에있는 파일을 생성 할 때 나는 또한 readStream에서 GridFS에 직접 저장할 수입니다. (참조 코드) 나는 POST를 수신하고 기본적으로 단지 savePic.js에게이 전달 다음 파일, saveFromReq.js 있습니다. saveFromReq.js : var e.." data-profile-image="https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png" data-profile-name="cnpnote" data-pc-url="https://cnpnote.tistory.com/entry/MONGODB-%ED%91%9C%ED%98%84-GridFS%EC%97%90%EC%84%9C-POST-%EC%9A%94%EC%B2%AD%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%9D%84-%EC%A0%80%EC%9E%A5-MongoDB%EB%A5%BC-Nodejs%EB%A5%BC" data-relative-pc-url="/entry/MONGODB-%ED%91%9C%ED%98%84-GridFS%EC%97%90%EC%84%9C-POST-%EC%9A%94%EC%B2%AD%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%9D%84-%EC%A0%80%EC%9E%A5-MongoDB%EB%A5%BC-Nodejs%EB%A5%BC" data-blog-title="복붙노트"><span class="ico_postbtn ico_share">공유하기</span></button> <div class="layer_post" id="tistorySnsLayer"></div> </div><div class="wrap_btn wrap_btn_etc" data-entry-id="12537" data-entry-visibility="public" data-category-visibility="public"><button type="button" class="btn_post btn_etc2" aria-expanded="false"><span class="ico_postbtn ico_etc">게시글 관리</span></button> <div class="layer_post" id="tistoryEtcLayer"></div> </div></div> <button type="button" class="btn_menu_toolbar btn_subscription #subscribe" data-blog-id="2840920" data-url="https://cnpnote.tistory.com/entry/MONGODB-%ED%91%9C%ED%98%84-GridFS%EC%97%90%EC%84%9C-POST-%EC%9A%94%EC%B2%AD%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%9D%84-%EC%A0%80%EC%9E%A5-MongoDB%EB%A5%BC-Nodejs%EB%A5%BC" data-device="web_pc" data-tiara-action-name="구독 버튼_클릭"><em class="txt_state"></em><strong class="txt_tool_id">복붙노트</strong><span class="img_common_tistory ico_check_type1"></span></button> <div data-tistory-react-app="SupportButton"></div> </div> <!-- PostListinCategory - START --> <div class="another_category another_category_color_gray"> <h4>'<a href="/category/MONGODB">MONGODB</a>' 카테고리의 다른 글</h4> <table> <tr> <th><a href="/entry/MONGODB-%EB%AA%BD%EA%B5%AC%EC%8A%A4-%EB%AA%A8%EB%8D%B8%EC%97%90%EC%84%9C-%EC%8A%A4%ED%82%A4%EB%A7%88-%ED%8A%B9%EC%84%B1%EC%9D%84-%EB%B0%9B%EA%B3%A0">[MONGODB] 몽구스 모델에서 스키마 특성을 받고</a> <span>(0)</span></th> <td>2019.12.14</td> </tr> <tr> <th><a href="/entry/MONGODB-MongoDB%EC%9D%98-%EA%B2%80%EC%83%89%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%9E%90%EB%8F%99-%EC%99%84%EC%84%B1-%EA%B8%B0%EB%8A%A5%EC%9D%84-%EA%B5%AC%ED%98%84">[MONGODB] MongoDB의 검색을 사용하여 자동 완성 기능을 구현</a> <span>(0)</span></th> <td>2019.12.14</td> </tr> <tr> <th><a href="/entry/MONGODB-%EC%A7%91%EA%B3%84-%EC%BF%BC%EB%A6%AC%EC%97%90-MongoDB%EC%9D%98-%EC%84%B1%EB%8A%A5">[MONGODB] 집계 쿼리에 MongoDB의 성능</a> <span>(0)</span></th> <td>2019.12.14</td> </tr> <tr> <th><a href="/entry/MONGODB-MongoDB%EC%9D%98-%EC%9E%90%EB%B0%94-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EA%B5%AC%EC%84%B1-%EB%A1%9C%EA%B9%85">[MONGODB] MongoDB의 자바 드라이버 구성 로깅</a> <span>(0)</span></th> <td>2019.12.14</td> </tr> <tr> <th><a href="/entry/MONGODB-MongoDB%EC%9D%98-%EC%BB%AC%EB%A0%89%EC%85%98-%EC%A4%91%EB%B3%B5-%EB%AC%B8%EC%84%9C%EC%9D%98-%EC%82%BD%EC%9E%85%EC%9D%84-%EC%A4%91%EC%A7%80%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95">[MONGODB] MongoDB의 컬렉션 중복 문서의 삽입을 중지하는 방법</a> <span>(0)</span></th> <td>2019.12.14</td> </tr> </table> </div> <!-- PostListinCategory - END --> </div> <div class="entry-footer"> <div class="actionTrail"> <a href="#tb" onclick=""></a>, <a href="#rp" onclick=""></a> </div> <div data-tistory-react-app="Namecard"></div> </div> </div> </div><!-- entry close --> </article> </div><!-- container close --> <aside role="complementary" id="sidebar"> <div class="container"> <div class="sidebar-inner"> <div class="module module_plugin"> <!-- Adfit_PC - START --> <ins class="kakao_ad_area" style="display:none;" data-ad-unit = "DAN-ubre63wuo3sm" data-ad-width = "160" data-ad-height = "600"></ins> <script type="text/javascript" src="//t1.daumcdn.net/kas/static/ba.min.js" async></script> <!-- Adfit_PC - END --> </div> <!-- 검색 모듈 --> <div class="widget widget-search col-md-3 col-xs-12"> <h3><i class="icon-magnifier icons"></i> Search</h3> <input type="text" name="search" value="" onkeypress="if (event.keyCode == 13) { try { window.location.href = '/search' + '/' + looseURIEncode(document.getElementsByName('search')[0].value); document.getElementsByName('search')[0].value = ''; return false; } catch (e) {} }"/> <input value="검색" type="button" onclick="try { window.location.href = '/search' + '/' + looseURIEncode(document.getElementsByName('search')[0].value); document.getElementsByName('search')[0].value = ''; return false; } catch (e) {}" class="btn btn-default btn-sm"/> </div> <!-- 카테고리 모듈 --> <div class="widget widget-category col-md-3 col-xs-12"> <h3><i class="icon-direction icons"></i> 카테고리</h3> <ul class="tt_category"><li class=""><a href="/category" class="link_tit"> 분류 전체보기 </a> <ul class="category_list"><li class=""><a href="/category/PHP" class="link_item"> PHP </a></li> <li class=""><a href="/category/%EC%8A%A4%ED%81%AC%EB%9E%98%EC%B9%98%203.0" class="link_item"> 스크래치 3.0 </a></li> <li class=""><a href="/category/PYTHON" class="link_item"> PYTHON </a></li> <li class=""><a href="/category/SPRING" class="link_item"> SPRING </a></li> <li class=""><a href="/category/HADOOP" class="link_item"> HADOOP </a></li> <li class=""><a href="/category/SCALA" class="link_item"> SCALA </a></li> <li class=""><a href="/category/MONGODB" class="link_item"> MONGODB </a></li> <li class=""><a href="/category/REDIS" class="link_item"> REDIS </a></li> <li class=""><a href="/category/RUBY-ON-RAILS" class="link_item"> RUBY-ON-RAILS </a></li> <li class=""><a href="/category/SQL" class="link_item"> SQL </a></li> <li class=""><a href="/category/NODEJS" class="link_item"> NODEJS </a></li> <li class=""><a href="/category/JQUERY" class="link_item"> JQUERY </a></li> <li class=""><a href="/category/ANDROID" class="link_item"> ANDROID </a></li> <li class=""><a href="/category/SWIFT" class="link_item"> SWIFT </a></li> <li class=""><a href="/category/HTML" class="link_item"> HTML </a></li> <li class=""><a href="/category/CSS" class="link_item"> CSS </a></li> <li class=""><a href="/category/REACTJS" class="link_item"> REACTJS </a></li> <li class=""><a href="/category/VUEJS" class="link_item"> VUEJS </a></li> <li class=""><a href="/category/WORDPRESS" class="link_item"> WORDPRESS </a></li> <li class=""><a href="/category/ANGULAR" class="link_item"> ANGULAR </a></li> <li class=""><a href="/category/MICROSERVICE" class="link_item"> MICROSERVICE </a></li> <li class=""><a href="/category/DJANGO" class="link_item"> DJANGO </a></li> <li class=""><a href="/category/FLASK" class="link_item"> FLASK </a></li> <li class=""><a href="/category/APACHE" class="link_item"> APACHE </a></li> <li class=""><a href="/category/GO" class="link_item"> GO </a></li> <li class=""><a href="/category/JAVA" class="link_item"> JAVA </a></li> <li class=""><a href="/category/FLUTTER" class="link_item"> FLUTTER </a></li> <li class=""><a href="/category/REACTIVE" class="link_item"> REACTIVE </a></li> <li class=""><a href="/category/SPA" class="link_item"> SPA </a></li> </ul> </li> </ul> </div> <!-- 태그목록 모듈 --> <div class="widget widget-tag col-md-3 col-xs-12"> <h3><i class="icon-tag icons"></i> 태그목록</h3> <ul> <li><a href="/tag/PYTHON" class="cloud3"> PYTHON</a></li> <li><a href="/tag/mysql" class="cloud4"> mysql</a></li> <li><a href="/tag/spring" class="cloud1"> spring</a></li> <li><a href="/tag/spring-mvc" class="cloud4"> spring-mvc</a></li> <li><a href="/tag/HADOOP" class="cloud3"> HADOOP</a></li> <li><a href="/tag/sql" class="cloud2"> sql</a></li> <li><a href="/tag/php" class="cloud4"> php</a></li> <li><a href="/tag/javascript" class="cloud4"> javascript</a></li> <li><a href="/tag/jQuery" class="cloud4"> jQuery</a></li> <li><a href="/tag/java" class="cloud2"> java</a></li> </ul> </div> <!-- 최근 포스트 모듈 --> <div class="widget widget-post col-md-3 col-xs-12"> <h3><i class="icon-list icons"></i> 최근에 올라온 글 </h3> <ul> </ul> </div> </div> </div> </div><!-- container close --> </aside><!-- sidebar close --> <footer role="contentinfo"> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12 footer-menu"> <a href="https://cnpnote.tistory.com/tag"><i class="icon-tag icons"></i> </a> <a href="https://cnpnote.tistory.com/rss" onclick="window.open(this.href); return false"><i class="icon-feed icons"></i> </a> </div> <div class="col-xs-12 col-sm-12 col-md-12 footer-copyright text-right"> <a href="https://cnpnote.tistory.com/"> cnpnote</a>'s Blog is powered by <a href="http://daum.net" onclick="window.open(this.href); return false">Daumkakao</a> / Designed by <a href="http://ongal.tistory.com">CEOSEO</a> </div> </div> </div> </footer> <!-- jQuery --> <script src="https://tistory1.daumcdn.net/tistory/2840920/skin/images/jquery-1.11.0.min.js?_version_=1583344392"></script> <div class="#menubar menu_toolbar "> <h2 class="screen_out">티스토리툴바</h2> <div class="btn_tool"><button class="btn_menu_toolbar btn_subscription #subscribe" data-blog-id="2840920" data-url="https://cnpnote.tistory.com" data-device="web_pc"><strong class="txt_tool_id">복붙노트</strong><em class="txt_state">구독하기</em><span class="img_common_tistory ico_check_type1"></span></button></div></div> <div class="#menubar menu_toolbar "></div> <div class="layer_tooltip"> <div class="inner_layer_tooltip"> <p class="desc_g"></p> </div> </div> <div id="editEntry" style="position:absolute;width:1px;height:1px;left:-100px;top:-100px"></div> <!-- DragSearchHandler - START --> <script src="//search1.daumcdn.net/search/statics/common/js/g/search_dragselection.min.js"></script> <!-- DragSearchHandler - END --> <div style="margin:0; padding:0; border:none; background:none; float:none; clear:none; z-index:0"></div> <script type="text/javascript" src="https://tistory1.daumcdn.net/tistory_admin/userblog/userblog-0807b9a8fd3dcd0ebf876af98e072e858c544797/static/script/common.js"></script> <script type="text/javascript">window.roosevelt_params_queue = window.roosevelt_params_queue || [{channel_id: 'dk', channel_label: '{tistory}'}]</script> <script type="text/javascript" src="//t1.daumcdn.net/midas/rt/dk_bt/roosevelt_dk_bt.js" async="async"></script> <script>window.tiara = {"svcDomain":"user.tistory.com","section":"글뷰","trackPage":"글뷰_보기","page":"글뷰","key":"2840920-12537","customProps":{"userId":"0","blogId":"2840920","entryId":"12537","role":"guest","trackPage":"글뷰_보기","filterTarget":false},"entry":{"entryId":"12537","entryTitle":"[MONGODB] 표현 GridFS에서 POST 요청에서 데이터 스트림을 저장, MongoDB를, Node.js를","entryType":"POST","categoryName":"MONGODB","categoryId":"310891","serviceCategoryName":null,"serviceCategoryId":null,"author":"3264508","authorNickname":"cnpnote","blogNmae":"복붙노트","image":"","plink":"/entry/MONGODB-%ED%91%9C%ED%98%84-GridFS%EC%97%90%EC%84%9C-POST-%EC%9A%94%EC%B2%AD%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%9D%84-%EC%A0%80%EC%9E%A5-MongoDB%EB%A5%BC-Nodejs%EB%A5%BC","tags":["gridfs","gridfs-stream","javascript","mongodb","node.js"]},"kakaoAppKey":"3e6ddd834b023f24221217e370daed18","appUserId":"null"}</script> <script type="module" src="https://t1.daumcdn.net/tistory_admin/frontend/tiara/v1.0.5/index.js"></script> <script src="https://t1.daumcdn.net/tistory_admin/frontend/tiara/v1.0.5/polyfills-legacy.js" nomodule="true" defer="true"></script> <script src="https://t1.daumcdn.net/tistory_admin/frontend/tiara/v1.0.5/index-legacy.js" nomodule="true" defer="true"></script> </body> </html>