ven创建数据库账户和密码运行时无法链接数据库

来源:1-1 跟着Sam老师学习如何快速从0到1构建管理后台

yorkchiu

2025-05-31

C:\Users\Administrator\Desktop\imooc-nest-admin\src\utils
import * as fs from ‘fs’;
import * as os from ‘os’;
import * as path from ‘path’;
export function getMyUsernameAndPassword() {
const homeDir = os.homedir();
const usernamePath = path.resolve(homeDir, ‘.vben’, ‘username’); // 修改为 username.txt
const passwordPath = path.resolve(homeDir, ‘.vben’, ‘password’); // 修改为 password.txt
// 打印调试信息
console.log(‘当前工作目录:’, process.cwd());
console.log(‘尝试读取的路径:’, usernamePath, passwordPath);
const username = fs.readFileSync(usernamePath).toString().trim();
const password = fs.readFileSync(passwordPath).toString().trim();
// const username = fs.readFileSync(usernamePath, ‘utf8’).replace(/\s+/g, ‘’); // 删除所有空白字符(包括换行、空格等)
// const password = fs.readFileSync(passwordPath, ‘utf8’).replace(/\s+/g, ‘’); // 删除所有空白字符(包括换行、空格等)
console.log(‘username:’, username);
console.log(‘password:’, password);
return {
username,
password,
};
}

C:\Users\Administrator\Desktop\imooc-nest-admin\src\app.module.ts
import { Module } from ‘@nestjs/common’;
import { TypeOrmModule } from ‘@nestjs/typeorm’;
import { AppController } from ‘./app.controller’;
import { AppService } from ‘./app.service’;
import { UserModule } from ‘./modules/user/user.module’;
import { AuthModule } from ‘./modules/auth/auth.module’;
import { BookModule } from ‘./modules/book/book.module’;
import { getMyUsernameAndPassword } from ‘./utils/’;
// import { ConfigModule, ConfigService } from ‘@nestjs/config’;

const { username, password } = getMyUsernameAndPassword();
@Module({
imports: [
// 写法1
TypeOrmModule.forRoot({
type: ‘mysql’,
host: ‘localhost’,
port: 3306,
username,
password,
database: ‘vben-book-dev’,
}),
// 写法2
// ConfigModule.forRoot(), // 加载 .env 文件
// TypeOrmModule.forRootAsync({
// imports: [ConfigModule],
// useFactory: (configService: ConfigService) => ({
// type: ‘mysql’,
// host: ‘localhost’,
// port: 3306,
// username: configService.get(‘DB_USERNAME’), // 从 .env 读取
// password: configService.get(‘DB_PASSWORD’), // 从 .env 读取
// database: ‘vben-book-dev’,
// }),
// inject: [ConfigService],
// }),
// 保持不变
UserModule,
AuthModule,
BookModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}

报错信息:
[12:36:27] Starting compilation in watch mode…

[12:36:30] Found 0 errors. Watching for file changes.

当前工作目录: C:\Users\Administrator\Desktop\imooc-nest-admin
尝试读取的路径: C:\Users\Administrator.vben\username C:\Users\Administrator.vben\password
node:fs:562
return binding.open(
^

Error: ENOENT: no such file or directory, open 'C:\Users\Administrator.vben\username’
at Object.openSync (node:fs:562:18)
at Object.readFileSync (node:fs:446:35)
at getMyUsernameAndPassword (C:\Users\Administrator\Desktop\imooc-nest-admin\src\utils\index.ts:11:23)
at Object. (C:\Users\Administrator\Desktop\imooc-nest-admin\src\app.module.ts:11:56)
at Module._compile (node:internal/modules/cjs/loader:1730:14)
at Object…js (node:internal/modules/cjs/loader:1895:10)
at Module.load (node:internal/modules/cjs/loader:1465:32)
at Function._load (node:internal/modules/cjs/loader:1282:12)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:235:24) {
errno: -4058,
code: ‘ENOENT’,
syscall: ‘open’,
path: ‘C:\Users\Administrator\.vben\username’
}

Node.js v22.15.1

写回答

1回答

Sam

2025-06-03

同学你好~根据你的报错:

Error: ENOENT: no such file or directory, open 'C:\Users\Administrator.vben\username’

你需要先创建username文件,因为你是windows操作系统,建议你创建一个username.txt文件,并且修改读取username.txt的路径,改为这样:

C:\Users\Administrator\vben\username.txt


1
0

Vue3+NestJS 全栈开发企业级管理后台

掌握Vue3全家桶&高Star提效框架,发展更“无界”

229 学习 · 91 问题

查看课程