📌  相关文章
📜  使用 Node.js、Express 和 Postgres 创建 REST API 后端

📅  最后修改于: 2022-05-13 01:56:26.272000             🧑  作者: Mango

使用 Node.js、Express 和 Postgres 创建 REST API 后端

可以使用 Node.js、Express 和 Postgres 开发 JavaScript 后端。该后端可以对 PostgreSQL 数据库进行查询操作,并在 REST API 上提供状态或数据。

安装要求:

  1. 节点.js:
    • 在 Windows 上安装 Node.js
    • 在 Linux 上安装 Node.js
  2. PostgreSQL:
    • 在 Windows 上安装 Postgres
    • 在 Linux 上安装 Postgres
    • 在 Mac 上安装 Postgres

测试成功安装:

  1. 节点.js:
    • 打开命令提示符或终端并输入:
      node -v 

      输出必须显示一些版本号示例:

      v12.14.0 

      注意:如果显示 command not found 则 node.js 没有安装成功。

  2. Postgres:
    • Windows : 搜索 SQL Shell,如果找到则安装成功。
    • Linux 或 Mac:键入以下命令:
      which psq 

      注意:如果存在输出,则安装成功。

设置数据库的步骤:

  • 打开 PostgresSQL 外壳
  • 键入本地设置的数据库凭据或按回车键,以防您想使用默认值,如下所示:
    Postgresql 数据库外壳
  • 使用以下命令创建数据库:
    create database gfgbackend;     
  • 使用以下命令切换到该数据库:
    \c gfgbackend;
  • 使用以下命令创建测试表:
    create table test(id int not null); 
  • 使用以下命令将值插入测试表:
    insert into test values(1);  
    insert into test values(2);
  • 现在尝试使用以下方法验证数据是否插入到表中:
    select * from test;

    插入和选择语句

创建后端的步骤:

  • 转到您要创建项目的目录
  • 使用以下命令初始化节点项目:
    npm init
  • 输入项目名称和其他详细信息,如果要使用默认值,请按 Enter
    npm 初始化细节
  • 使用 npm 安装 express
    npm install --save express
  • 使用 npm 安装 node-postgres 客户端
    npm install --save pg
  • 安装 postgres 模块,用于使用 npm 将 JSON 数据序列化和反序列化为 hstore 格式。
    npm install --save pg-hstore    
  • 创建一个文件 index.js 作为后端的入口点。
  • 现在使用 npm 安装 body-parser
    npm install --save body-parser
  • 现在将以下代码添加到 index.js 文件中,该文件启动 express 服务器,创建池连接并创建 REST API '/testdata'。在下面的代码中创建池时不要忘记添加您的密码。
    // Entry Point of the API Server 
      
    const express = require('express');
      
    /* Creates an Express application. 
       The express() function is a top-level 
       function exported by the express module.
    */
    const app = express();
    const Pool = require('pg').Pool;
      
    const pool = new Pool({
        user: 'postgres',
        host: 'localhost',
        database: 'gfgbackend',
        password: 'postgres',
        dialect: 'postgres',
        port: 5432
    });
      
      
    /* To handle the HTTP Methods Body Parser 
       is used, Generally used to extract the 
       entire body portion of an incoming 
       request stream and exposes it on req.body 
    */
    const bodyParser = require('body-parser');
    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({ extended: false }));
      
      
    pool.connect((err, client, release) => {
        if (err) {
            return console.error(
                'Error acquiring client', err.stack)
        }
        client.query('SELECT NOW()', (err, result) => {
            release()
            if (err) {
                return console.error(
                    'Error executing query', err.stack)
            }
            console.log("Connected to Database !")
        })
    })
      
    app.get('/testdata', (req, res, next) => {
        console.log("TEST DATA :");
        pool.query('Select * from test')
            .then(testData => {
                console.log(testData);
                res.send(testData.rows);
            })
    })
      
    // Require the Routes API  
    // Create a Server and run it on the port 3000
    const server = app.listen(3000, function () {
        let host = server.address().address
        let port = server.address().port
        // Starting the Server at the port 3000
    })
    
  • 现在,使用以下命令启动后端服务器:
    node index.js
  • 打开浏览器并尝试路由到:
    http://localhost:3000/testdata

    现在,您可以看到测试表中的数据如下:
    REST API 数据