---
description: 使用Node.js建立redis連線的相關設定
---

# Node.js

### 在Node.js環境下建立Redis連線

{% hint style="success" %}
可以從[**筆者Github網站**](https://github.com/yeyuting0307/Redis-Tutorial.git)下載Node.js教學範本
{% endhint %}

1. 初始化Node.js

{% tabs %}
{% tab title="Bash" %}
```bash
> npm init
```
{% endtab %}
{% endtabs %}

2\. 安裝相關套件

> 本教學所需基本套件：redis、express、dotenv、nodemon、typescript、ts-node

{% tabs %}
{% tab title="Bash" %}
```bash
> npm i -D redis express dotenv nodemon typescript tslib ts-node 
```
{% endtab %}
{% endtabs %}

{% hint style="info" %}
&#x20;`-D` 相當於`--save-dev，`設定成開發時期依賴的套件
{% endhint %}

3\. 建立.env文件，設置express服務及redis client的端口(port)

{% code title=".env" %}
```bash
PORT = 4200;
REDIS_PORT = 6379
```
{% endcode %}

4\. 確認package.json中scripts內容包含以下**serve**指令

{% code title="package.json" %}
```bash
{
    ...,
    "scripts": {
        "serve": "nodemon --exec ts-node ./src/index.ts"
     },
     ...
 }
```
{% endcode %}

5\. 建立src/index.ts資料夾與文件，index.ts內容範本如下

{% hint style="info" %}
本教學之TypeScript程式碼均可複製貼上到Command Example區塊中執行
{% endhint %}

{% code title="index.ts" %}
```typescript
import * as dotenv from 'dotenv';
import express from 'express';
import * as redis from 'redis'

// env variable
dotenv.config();
const PORT = Number(process.env.PORT) || 4200;
const REDIS_HOST = process.env.REDIS_HOST || "127.0.0.1";
const REDIS_PORT = Number(process.env.REDIS_PORT) || 6379;

// create redis connection
const client = redis.createClient({
    port: REDIS_PORT, 
    host: REDIS_HOST
});
client.on('error', function (error) {
    console.error(error);
});


// =============== Command Example ===============




// ===============================================


// app listening
const app = express();
app.listen(PORT, () => {
    console.log(`App port :`, PORT);
    console.log(`Redis host :`, REDIS_HOST);
    console.log(`Redis port :`, REDIS_PORT);
});
```
{% endcode %}

6\. 在Terminal中執行以下指令`npm run serve`，測試運行結果

```bash
> npm run serve
App port : 4200
Redis host : 127.0.0.1
Redis port : 6379
```
