티스토리 뷰
이 페이지는 Node.js 프로젝트에 Amazon AWS DynamoDB를 연결하는 방법에 대해 설명하고 있다.
폴더 구조에 관련한 내용은 지난 포스트를 참고한다.
참고) http://kkumalog.tistory.com/49
# 설치
$ npm install aws-sdk
# Code
여기서는 AWS DynamoDB의 'version'테이블에서 version 필드값이 'a'인 데이터를 가져오는 과정에 대한 코드를 나타내고 있다.
(코드는 DB와 직접 연결하는 database폴더 → 서버를 실행하는 app.js 순서로 설명한다. 또한 예시를 위해 aws 설정 관련 코드를 같은 파일에 작성했으나, 실제로는 코드의 재사용성을 위해 다른 파일로 분리하여 사용하고 있다)
1) database/version.js
const AWS = require(‘aws-sdk’);const doc = new AWS.DynamoDB.DocumentClient();//TODO region, accessKeyId, secretAccessKey 입력필요
AWS.config.update({region: region,accessKeyId : accessKeyId,secretAccessKey: secretAccessKey});const TableNameTree = {version: ‘version’};const getVersion = async function getVersion() {try {let data = await doc.query({TableName: TableNameTree.version,KeyConditionExpression: '#version = :version',ExpressionAttributeValues: { ':version': 'a' },ExpressionAttributeNames: { '#version': 'version' },}).promise();if (data && data.Items) data = data.Items;return data;} catch (err) {return Promise.reject(err);}};module.exports = {getVersion};
2) api/version.js
const versionDB = require(‘../database/version’);const printVersion = async function getVersion(req, res, next) {try {const v = await versionDB.getVersion();res.send(v);} catch (e) {res.send(e);}}module.exports = {printVersion};
3) router/version.js
const router = require(‘express’).Router();const version = require(‘../api/version’);router.get(‘/‘, version.printVersion);module.exports = router;
4) app.js
const express = require(‘express’);const version = require(‘./router/version’);const app = express();app.get(‘/‘, function (req, res) {res.send(‘Hello World!’);});app.use(‘/version’, version);
app.listen(3001, function () {console.log(‘Example app listening on port 3001!’);});
# 서버실행
https://localhost:3001/version 을 실행하면 obejct타입으로 결과를 얻을 수 있다.
'Programming > Node.js' 카테고리의 다른 글
[Node.js] AWS DynamoDB - Create, Read, Update, Delete (CRUD) (0) | 2019.02.17 |
---|---|
[Node.js] Login Authentication With Passport (0) | 2019.02.02 |
[Node.js] Create Node.js Project in IntelliJ IDEA(2) (0) | 2019.01.28 |
[Node.js] Create Node.js Project in IntelliJ IDEA (0) | 2019.01.26 |
[Node.js] Node.js 시작하기 (0) | 2019.01.07 |
댓글