--- title: "Advanced I/O Functionの設定" url: https://docs.catalyst.zoho.com/ja/tutorials/newsapp/nodejs/configure-advancedio/ description: "Catalyst Job Scheduling Cronコンポーネントと、Node.jsで記述されたJob FunctionおよびAdvanced I/O Functionを使用して、サードパーティサービスから定期的にニュースを自動取得するWebニュースアプリケーションを構築します。" last_updated: 2026-08-17T12:16:04Z service: All Services type: tutorial related_links: - name: "Advanced I/O Function" url: /ja/serverless/help/functions/advanced-io - name: "データストア" url: /ja/cloud-scale/help/data-store/introduction - name: "ZCQL" url: /ja/cloud-scale/help/zcql/introduction --- # Advanced I/O Functionの設定 Advanced I/O Functionディレクトリ(`functions/news_app_function`)には以下のファイルが含まれています: * `index.js`メイン関数ファイル * `catalyst-config.json`設定ファイル * Nodeモジュール * [`package.json`](https://docs.npmjs.com/files/package.json)および[`package-lock.json`](https://docs.npmjs.com/configuring-npm/package-lock-json.html)依存関係ファイル `index.js`ファイルにコードを追加します。 Advanced I/O Functionは、Data Storeのソーステーブルからニュースアイテムを取得し、JSONレスポンスとしてクライアントコンポーネントに転送します。 ### Express Node.jsフレームワークのインストール Node.jsプラットフォームでコーディングするため、[`Express Node.js`](https://expressjs.com/)フレームワークを使用します。コードでExpressパッケージをインポートするには、システムにExpress依存関係をインストールする必要があります。 ```sh npm install express ``` これにより、Expressモジュールがインストールされ、依存関係が保存されます。 ![advanced-express](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/advanced-express.webp) Node.jsコードをコピーして、プロジェクトの`functions/news_app_function`ディレクトリにある`index.js`に貼り付けてファイルを保存します。アプリケーションのファイルの操作には任意のIDEを使用できます。 > **Note**: このセクションのコードを十分に理解するために、必ず目を通してください。 **index.js** ```javascript 'use strict'; var express = require('express'); var app = express(); var catalyst = require('zcatalyst-sdk-node'); app.use(express.json()); //必要なテーブルからニュースを取得するGET API app.get('/fetchData', (req, res) => { var tablename = req.query.tablename; console.log("Table Name "+tablename); //Catalyst SDKの初期化 var catalystApp = catalyst.initialize(req); //Catalyst Data Storeテーブルをクエリして必要なニュースを取得 getDataFromCatalystDataStore(catalystApp, tablename).then(newsDetails => { res.send({ "content": newsDetails }) }).catch(err => { console.log(err); sendErrorResponse(res); }) }); /** * クエリを実行してテーブルからニュースを取得します * @param {*} catalystApp * @param {*} tablename */ function getDataFromCatalystDataStore(catalystApp, tablename) { return new Promise((resolve, reject) => { //Catalyst Data Storeテーブルをクエリ catalystApp.zcql().executeZCQLQuery("Select title,url from " + tablename).then(queryResponse => { resolve(queryResponse); }).catch(err => { reject(err); }) }); } /** * エラーレスポンスを送信します * @param {*} res */ function sendErrorResponse(res) { res.status(500); res.send({ "error": "Internal server error occurred. Please try again in some time." }); } module.exports = app; ``` Advanced I/O Functionの設定が完了しました。クライアントの設定後にアプリケーションのアーキテクチャについて説明します。