.env 文件在 JS、Node.js 和 MySQL 中使用 process.env 不起作用 - 似乎是 .env 文件,因为当直接将信息放入 JS 时它工作正常

问题描述 投票:0回答:1

我是Mysql新手,我正在尝试编写一个程序,让我使用js来操作其中的数据。我正在遵循教程并完全按照 iot 的说明进行操作,但由于某种原因,当我制作 env 文件时,它停止工作。我已经按照教程所述写出了所有内容,但是当我运行它时,我收到此错误:

Error: getaddrinfo ENOTFOUND '127.0.0.1',
    at PromisePool.query (C:\Users\Admin\Desktop\Database practise\database mySQL-node.js practise\node_modules\mysql2\promise.js:356:22)
    at getAllnotes (file:///C:/Users/Admin/Desktop/Database%20practise/database%20mySQL-node.js%20practise/database.js:16:31)
    at file:///C:/Users/Admin/Desktop/Database%20practise/database%20mySQL-node.js%20practise/database.js:20:23
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12) {
  code: 'ENOTFOUND',
  errno: -3008,
  sql: undefined,
  sqlState: undefined,
  sqlMessage: undefined

我希望它能显示我拥有的数据,但只是出现了上面的错误。

它看起来确实像 .env 文件,因为当我将所有信息直接放入 js(主机、用户等)中时,它工作正常,但由于某种原因,当我将所有信息传输到 env 文件时,它不起作用。

这是JS文件

import mysql from "mysql2"
import dotenv from 'dotenv'
dotenv.config()



const pool = mysql.createPool({
    host: process.env.MYSQL_HOST,
    user: process.env.MYSQL_USER,
    password: process.env.MYSQL_PASSWORD,
    database: process.env.MYSQL_DATABASE
}).promise()


async function getAllnotes() {
    const [rows] = await pool.query("SELECT * from notes")
    return rows
  }
  
  const notes = await getAllnotes()
  console.log(notes)

这是 .env 文件

MYSQL_HOST = '127.0.0.1',
MYSQL_USER = 'root'
MYSQL_PASSWORD = 'password',
MYSQL_DATABASE ='notes_app'

和 package.json 文件

{
  "dependencies": {
    "dotenv": "^16.3.1",
    "mysql": "^2.18.1",
    "mysql2": "^3.7.0"
  },
  "name": "admin",
  "type": "module",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": ""
}

如果你想看的话,教程是 https://www.youtube.com/watch?v=Hej48pi_lOc 我所坚持的部分是 9.50。

我已经安装了 dotenv 和 mysql2,但仍然无法工作

javascript node.js environment-variables mysql-connector
1个回答
0
投票

我已经解决了。我已经删除了 env 文件中的逗号和空格,现在它可以工作了

© www.soinside.com 2019 - 2024. All rights reserved.