我是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,但仍然无法工作
我已经解决了。我已经删除了 env 文件中的逗号和空格,现在它可以工作了