마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Node.js의 js 파일을 실행할 때 웹페이지를 통해 실행할 수 있을까요?

0 추천

안녕하세요. push 알림 기능 구현하다 질문드립니다.

 

node.js를 활용해 push provider 소스를 만들었습니다.

 

provider.js 
var gcm = require('node-gcm'); 
var message = new gcm.Message(); 
var message = new gcm.Message({ 
   collapseKey: 'PhoneGapDemo', 
   delayWhileIdle: false, 
   timeToLive: 3, 
   data: { 
        title:'PhoneGap 푸시 테스트', 
        message: 'PhoneGap 푸시 메세지', 
        msgcnt: 1 
   } 
}); 
var sender = new gcm.Sender('APK_ID'); 
var registrationIds = []; 
registrationIds.push('regId1', 'regId2', 'regId3'); 
sender.send(message, registrationIds, 4, function (err, result) {}); 

 

간략한 소스입니다. node 프롬프트 창에서 

node provider.js 명령어를 날리면 푸시메시지가 잘 전송되고 있습니다.

 

이를 푸시 메시지 관리자의 편의를 위해 별도의 웹페이지를 만들어 푸시메시지를 전송하도록 하고 싶습니다. (개발자도 아닌 관리자가 js 파일을 열어 푸시 문구를 수정하고 저장한 후 이를 다시 node 프롬프트에서 node 명령어를 날려 푸시메시지를 전송하라는 것은 위험이 따르다고 생각했기 때문입니다..)

 

개발환경은 phonegap / node.js / 안드로이드 스튜디오 / xCode 입니다.

 

제가 원하는 것은 간단하게 웹페이지를 하나 띄우고 관리자가 푸시 제목과 푸시 문구를 입력한 후 임의의 전송 버튼을 클릭하면 위 js 소스의 sender() 메서드가 실행되며 DB에서 불러온 regId값에 푸시메시지를 전송하는 것입니다.

 

혼자서 여러 시도를 해보았는데 정말 모르겠네요. 모바일 개발이 처음이라 많이 헷갈립니다. node.js에서 사용하는 js는 모듈을 불러 사용하던데(위에서는 var gcm = require('node-gcm'); 부분),

일반 html 페이지에서 위의 provider.js 파일을 불러오면 모듈 인식을 못해버리고 오류만 계속 던집니다.

 

자바 프로젝트를 만들어서 구현해보았으나 이건 node.js랑은 완전히 궤도를 달리해서 쓸 수 없을 것 같고(아이폰/안드로이드 푸시기능을 같이 구현하고 있거든요..) 골치가 아프네요.

 

질문글이 길어지는데...

 

지금 가장 궁금한 것은

node.js에서 js파일을 실행하려면 node 프롬프트에 접속하여 node 명령어로 js를 실행해야 하는데,

이를 별도의 웹페이지를 통해 사용자가 임의의 버튼을 눌렀을 경우 위처럼 프롬프트에 명령어를 입력했을 때처럼 js를 동작시키는 방법이 궁금합니다.

 

아시는 분 계시면 답변 꼭 좀 부탁드립니다. 이게 가능한건지 아닌지도 모르겠어요.. 혹 방법이 있다면 어떤 기능을 써라, 라고 간단하게라도 말씀해주시면 제가 구글링해가며 해볼게요 조그만 조언이라도 부탁드립니다!!!

공상가지망생 (210 포인트) 님이 2016년 3월 9일 질문

1개의 답변

+1 추천
js 라우터 모듈에서 regid값을 받아서 호출하면 될텐데요

http://pyrasis.com/nodejs/nodejs-HOWTO
익명사용자 님이 2016년 3월 9일 답변
안녕하세요. 답변 감사드립니다.

죄송한데 js router module로 구글링을 해봐도 뭔가 나오질 않네요.
링크 거신 페이지에서 router로 검색해서 보니

var express = require('express');
var router = express.Router();

이런식으로 다시 모듈을 호출해서 사용하고 있는데...
이 모듈을 사용하면 제가 위해 질문한 웹페이지를 통한 node 명령어 동작이 가능하다는 말씀이신가요??
지금 급해서.. 너무 성급했나봐요 ㅠㅠ..
링크 주신거 정신 맑을 때 정독해볼게요. 감사합니다.
감사합니다!! 덕분에 구현 했습니다. Node.js가 뭔지 이제 좀 알 것 같네요. 감사드려요!
...