'server'에 해당되는 글 2건
- 2014.04.30 node.js file uploader (파일 업로더 만들기)
- 2014.03.08 우분투에 오라클 클라이언트 인터페이스 설치하기(OCI)
2014.4월 현재 나와있는 예제들은 express가 버전업되면서 모두 제대로 동작 하지않습니다.
formidable 플러그인을 이용한 방법이 있습니다.
https://github.com/felixge/node-formidable
자세한 내용은 위의 주소에서 확인할수 있습니다.
대략내용은 파일업로드를 위하여 만든 플러그인이라고 합니다.
참고자료 :
http://helloraspberrypi.blogspot.kr/2014/04/upload-file-using-nodejs-with-formidable.html
-소스-
/*
<!-- index.html 파일예 --->
<form method="post" enctype="multipart/form-data" action="http://localhost:8081/file-upload">
<input type="file" name="thumbnail">
<input type="submit">
</form>
*/
var theApp = {
version : '0.2',
module_path : '',
port : 8081
};
//command line argument parse
process.argv.forEach(function(val, index, array) {
//console.log(index + ': ' + val);
if(val.indexOf('=') > 0) {
var tokens = val.split('=');
switch (tokens[0]) {
case 'port':
theApp.port = parseInt(tokens[1]);
break;
case 'module_path':
theApp.module_path = tokens[1];
break;
}
}
});
//console.log(theApp);
// run the command to install formidable
// $ npm install formidable
var formidable = require( theApp.module_path +'formidable');
var http = require('http');
var util = require('util');
var fs = require('fs');
var os = require('os');
var UrlParser = require('url');
var app = http.createServer(
function(req, res){
switch(req.method){
case 'GET':
process_get(req, res);
break;
case 'POST':
process_post(req, res);
break;
}
}
);
app.listen(theApp.port);
console.log('tiny upload server v ' + theApp.version );
console.log(' start port : '+ theApp.port + ', ready ok!');
//Display my IP
(function get_MyIP() {
var networkInterfaces = os.networkInterfaces();
for (var interface in networkInterfaces) {
networkInterfaces[interface].forEach(
function(details){
if (details.family=='IPv4'
&& details.internal==false) {
console.log(interface, details.address);
}
});
}
})();
//get 처리 해주기
function process_get(req, res){
var result = UrlParser.parse(req.url,true);
switch (result.pathname) {
case '/test':
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
break;
default :
break;
}
}
function process_post(req, res){
var form = new formidable.IncomingForm();
form.uploadDir = "./uploads"; //업로드할위치 지정
form.keepExtensions = true; //확장자 이름 써주기
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
var resultObj = {
result : 'ok',
size : files.thumbnail.size,
path : files.thumbnail.path,
name : files.thumbnail.name,
type : files.thumbnail.type
}
res.end( JSON.stringify(resultObj));
//res.end('File uploaded!');
console.log(files.thumbnail.path + "Upload completed" );
//console.log(util.inspect(files));
//console.log(files.thumbnail.name);
});
}
'server' 카테고리의 다른 글
우분투에 오라클 클라이언트 인터페이스 설치하기(OCI) (0) | 2014.03.08 |
---|
아래 싸이트에서 basic, sdk 를 다운받는다.
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
11.2 버전의 경우는 이름이 다음과 같다.
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
unzip 을 이용해서 basic 을 압축풀고 그안에 들어가서 sdk 압축을 푼다.
sudo nano /etc/enviroment(또는 bash.bashrc) 를 열고 맨 밑으로 커서를 이동한다음 아래를 추가 합니다.
(압축을 푼 디랙토리가 /home/gbox3d/work/oracle/instantclient_11_2 라고 가정합니다.)
export OCI_HOME=/home/gbox3d/work/oracle/instantclient_11_2
export OCI_LIB_DIR=$OCI_HOME
export OCI_INCLUDE_DIR=$OCI_HOME/sdk/include
#export OCI_VERSION=12 # Optional. Default is 11.
export NLS_LANG=AMERICAN_AMERICA.UTF8
환경 변수를 시스템에 적용 시켜줍니다.(재부팅하고나면 리셋되므로 다시 해줘야합니다.)
source /etc/enviroment
심볼릭링크를 재정의 해줍니다. 12 버전은 뒷부분이 12.xxx가 됩니다. 그때그때 파일 이름을 보고 바꿔주시면됩니다.
cd $OCI_LIB_DIR
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so
추가 라이브러리를 설치합니다.
sudo apt-get install libaio1
동적 라이브러리 캐쉬를 생성합니다.
echo '/home/gbox3d/work/oracle/instantclient_11_2' | sudo tee -a /etc/ld.so.conf.d/oracle_instant_client.conf
sudo ldconfig
재부팅해서 설정을 적용시킵니다.
sudo reboot
(주의 : 재부팅후에는 oci 를 사용하려면 source /etc/enviroment 를 다시 해주어야합니다.)
참고 : 맥용 oci 설치하기>>>>
출처 :
https://github.com/joeferner/node-oracle/blob/master/INSTALL.md
'server' 카테고리의 다른 글
node.js file uploader (파일 업로더 만들기) (0) | 2014.04.30 |
---|