Node.js - 실시간 위치 추적 (2)
이제 사용자 위치를 저장할 "Location" 데이터베이스를 생성합니다.
mysql> CREATE DATABASE Location;
mysql> USE Location;
mysql> CREATE TABLE locations (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(50) NOT NULL,
-> latitude DOUBLE NOT NULL,
-> longitude DOUBLE NOT NULL,
-> date DATETIME NOT NULL);
서버 코드 "app.js" 파일 코드를 작성합니다.
// 모듈을 추출합니다.
var fs = require('fs');
var http = require('http');
var express = require('express');
// 데이터베이스와 연결합니다.
var client = require('mysql').createConnection({
user: 'root',
password: '비밀번호',
database: 'location'
});
// 웹 서버를 생성합니다.
var app = express();
var server = http.createServer(app);
// GET - /tracker
app.get('/tracker', function (request, response) {
// Tracker.html 파일을 제공합니다.
fs.readFile('Tracker.html', function (error, data) {
response.send(data.toString());
});
});
// GET - /observer
app.get('/observer', function (request, response) {
// Observer.html 파일을 제공합니다.
fs.readFile('Observer.html', function (error, data) {
response.send(data.toString());
});
});
// GET - /ShowData
app.get('/showdata', function (request, response) {
// 데이터베이스의 데이터를 제공합니다.
client.query('SELECT * FROM locations WHERE name=?', [request.param('name')], function (error, data) {
response.send(data);
});
});
// 웹 서버를 실행합니다.
server.listen(52273, function () {
console.log('Server Running at http://127.0.0.1:52273');
});
// 소켓 서버를 생성 및 실행합니다.
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
// join 이벤트
socket.on('join', function (data) {
socket.join(data);
});
// location 이벤트
socket.on('location', function (data) {
// 데이터를 삽입합니다.
client.query('INSERT INTO locations(name, latitude, longitude, date) VALUES (?, ?, ?, NOW())', [data.name, data.latitude, data.longitude]);
// receive 이벤트를 발생시킵니다.
io.sockets.in(data.name).emit('receive', {
latitude: data.latitude,
longitude: data.longitude,
date: Date.now()
});
});
});
게시글 목록
| 번호 | 제목 |
|---|---|
| 27925 | |
| 27922 | |
| 6972 | |
| 19602 |
JavaScript
jQuery 의 delegate 흉내내기
1
|
| 19601 |
JavaScript
script 디버깅 - JSHint
|
| 19599 |
jQuery
jQuery 롤링배너 플러그인
1
|
| 6961 | |
| 30941 | |
| 19597 | |
| 19596 | |
| 19595 | |
| 19594 |
JavaScript
스크립트 for문
|
| 30939 |
HTML
디바이스별 해상도 확인
1
|
| 19593 | |
| 6959 | |
| 6957 | |
| 6953 | |
| 27920 | |
| 19592 |
PHP
php oop 단일 모드
|
| 19591 | |
| 19590 |
PHP
IP class 비교 함수
|
| 6949 | |
| 6947 | |
| 20826 |
이미지관련
문자열이미지에 각종 필터를 적용한 결과
7
|
| 20823 |
이미지관련
이미지에 각종 필터를 적용한 결과
2
|
| 19589 |
jQuery
심플한 파일첨부 버튼과 jquery
|
| 27913 | |
| 27912 | |
| 19588 |
JavaScript
자바스크립트 시작날짜 종료날짜 유효성 검사 함수
|
| 20822 |
이미지관련
프레임이미지와 얼굴이미지 합치기
|
| 19587 | |
| 19586 |
PHP
한국 IP대역 체크
|
| 27887 | |
| 20819 | |
| 27883 | |
| 19585 | |
| 19584 | |
| 19583 |
JavaScript
중첩없이 랜덤수 뽑아내기
|
| 19582 | |
| 19581 | |
| 19580 | |
| 6945 | |
| 24622 | |
| 19578 |
JavaScript
자바스크립트에서 for문 사용시 속도차이
1
|
| 6938 | |
| 6935 | |
| 27880 | |
| 20818 | |
| 19575 | |
| 20815 |
이미지관련
이미지 너비에 맞게 문자열의 자동 개행
2
|
| 20812 | |
| 20809 |
이미지관련
문자열 그릴때 패딩 주기
2
|
| 6932 | |
| 6931 | |
| 6929 | |
| 19571 |
Mobile
html5 지원되는 os별 버전보기
3
|
| 19570 | |
| 20802 |
이미지관련
위치에 따른 이미지에 문자열 그리기
6
|
| 27877 | |
| 20797 | |
| 6923 | |
| 20795 |
이미지관련
문자열의 너비와 높이 구하기
1
|
| 6918 | |
| 6914 | |
| 20789 |
이미지관련
이미지에 글자 쓰기
5
|
| 6899 | |
| 27860 | |
| 6898 | |
| 27856 | |
| 6895 | |
| 6891 | |
| 6890 | |
| 6881 | |
| 6874 | |
| 27852 | |
| 6860 | |
| 6857 | |
| 19569 | |
| 19565 | |
| 19564 | |
| 27844 | |
| 19563 | |
| 24617 | |
| 19554 | |
| 6854 | |
| 19553 | |
| 19531 | |
| 6850 | |
| 6848 | |
| 27842 | |
| 6846 | |
| 6842 | |
| 6839 | |
| 6834 | |
| 6829 | |
| 6824 | |
| 6820 | |
| 27839 | |
| 6818 | |
| 19529 |
JavaScript
그누보드5 에 Daum 우편번호 찾기 API 연동 하기
1
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기