我将 Windows 重置为出厂设置,
我需要的所有应用程序都安装在 D 盘上(node、git、vsc、webstorm 等)。
但是现在它们在系统中“未注册”,并且 cmd 看不到命令,例如“node -v”
问题是,如何使所有这些变得“活跃”并正常工作,以便整个系统可以再次看到这些程序?
以及重置 Windows 后安装在其他磁盘上的任何程序
这是我的第一次经历,所以不要打败我)
我将 Windows 重置为出厂设置,
我需要的所有应用程序都安装在 D 盘上(node、git、vsc、webstorm 等)。
但是现在它们在系统中“未注册”,并且 cmd 看不到命令,例如“node -v”
问题是,如何使所有这些变得“活跃”并正常工作,以便整个系统可以再次看到这些程序?
以及重置 Windows 后安装在其他磁盘上的任何程序
这是我的第一次经历,所以不要打败我)
我使用服务器后面的 HttpListener 来实现 HTTPS,并没有引起任何抱怨。我想切换到 php-fpm,但我不知道它会有什么效果。有谁知道这个问题,告诉我 Linux 上最新版本的 php-fpm 有多可靠,相同算法在相同数据集上的性能是否可以比较?
我有一个组件,当按下按钮时会出现一个对话框。此方法与按钮相连。
public onBurger() {
const dialogRef = this.dialog.open(BurgerMenuComponent, {
width: '100%',
disableClose: true
})
dialogRef.afterOpened().subscribe(() => {
console.log('Диалог открыт');
});
dialogRef.afterClosed().subscribe(result => {
console.log('Диалог закрыт с результатом:', result);
});
}
在设计器中,MatDialog
与组件连接的模块相连的组件中导入的MatDialogModule
窗口没有打开,在控制台中我只看到
对话框关闭,结果为:undefind 我怎样才能使它在我单击按钮时打开一个对话框,其中包含我需要的组件
我正在使用 Docker 版本 20.10.21,构建 baeda1f。操作系统 Windows 11。决定在 Nest.js 上“dockerize”该应用程序。我通过 nest cli 创建了一个空项目并安装了 nodemon,虽然这里基本上不需要它,但没有它跟踪也可以工作。应用程序运行正常,一切正常。然后我决定创建一个 Docker 镜像和一个基于它的容器。这是我的Dockerfile
FROM node:latest
WORKDIR /app
RUN npm install -g nodemon
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3030
CMD ["npm", "run", "start:dev"]
这是我的package.json
{
"name": "nest_docker_setup",
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nodemon --config nodemon.json",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@nestjs/common": "^11.0.1",
"@nestjs/core": "^11.0.1",
"@nestjs/platform-express": "^11.0.1",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.1"
},
"devDependencies": {
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.18.0",
"@nestjs/cli": "^11.0.0",
"@nestjs/schematics": "^11.0.0",
"@nestjs/testing": "^11.0.1",
"@swc/cli": "^0.6.0",
"@swc/core": "^1.10.7",
"@types/express": "^5.0.0",
"@types/jest": "^29.5.14",
"@types/node": "^22.10.7",
"@types/supertest": "^6.0.2",
"eslint": "^9.18.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-prettier": "^5.2.2",
"globals": "^15.14.0",
"jest": "^29.7.0",
"nodemon": "^3.1.9",
"prettier": "^3.4.2",
"source-map-support": "^0.5.21",
"supertest": "^7.0.0",
"ts-jest": "^29.2.5",
"ts-loader": "^9.5.2",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.7.3",
"typescript-eslint": "^8.20.0"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
main.ts 如下所示
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(process.env.PORT ?? 3030);
}
bootstrap();
这就是我的app.service.ts文件的样子
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!2';
}
}
这就是我创建图像的方式
docker build -t server-nest:v1.0 .
这就是我创建容器的方法
docker run --name test-nest2 -p 3002:3030 --rm -v C:\Users\Dmitrij\work\nest_docker_setup:/app -v /app/node_modules server-nest:v1.0
究竟问题是什么?图像和容器已创建,但变更跟踪不起作用。那些。如果我更改 app.service.ts 文件中的行 return 'Hello World!2';然后通过 GET 请求 http://localhost:3002 我获得了之前的值。但即使没有 Docker,一切仍然正常。我想尝试安装 nodemon 并看看它是否可以工作,但是它没有工作。我尝试在容器运行时检查 nodemon 是否以这种方式安装。在 Docker 容器内,我运行命令来检查 nodemon 是否看到更改:
docker exec -it test-nest2 sh
nodemon --watch src --exec "nest start --watch"
我在控制台中收到了这个响应
[2:08:59 PM] Starting compilation in watch mode...
[2:09:01 PM] Found 0 errors. Watching for file changes.
[Nest] 99 - 02/23/2025, 2:09:01 PM LOG [NestFactory] Starting Nest application...
[Nest] 99 - 02/23/2025, 2:09:01 PM LOG [InstanceLoader] AppModule dependencies initialized +8ms
[Nest] 99 - 02/23/2025, 2:09:01 PM LOG [RoutesResolver] AppController {/}: +3ms
[Nest] 99 - 02/23/2025, 2:09:01 PM LOG [RouterExplorer] Mapped {/, GET} route +2ms
[Nest] 99 - 02/23/2025, 2:09:01 PM LOG [NestApplication] Nest application successfully started +1ms
[Nest] 99 - 02/23/2025, 2:09:01 PM ERROR [NestApplication] Error: listen EADDRINUSE: address already in use :::3030 +2ms
node:net:1937
const ex = new UVExceptionWithHostPort(err, 'listen', address, port);
^
Error: listen EADDRINUSE: address already in use :::3030
at Server.setupListenHandle [as _listen2] (node:net:1937:16)
at listenInCluster (node:net:1994:12)
at Server.listen (node:net:2099:7)
at ExpressAdapter.listen (/app/node_modules/@nestjs/platform-express/adapters/express-adapter.js:109:32)
at /app/node_modules/@nestjs/core/nest-application.js:183:30
at new Promise (<anonymous>)
at NestApplication.listen (/app/node_modules/@nestjs/core/nest-application.js:173:16)
at async bootstrap (/app/src/main.ts:6:3) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '::',
port: 3030
}
Node.js v23.8.0
PS C:\Users\Dmitrij\work\nest_docker_setup>
我尝试更改端口,但没有什么帮助。我希望有人能提出一些建议。
我怎样才能得分,以便当我进球时,记分牌上就会增加一分?
import pygame
from pygame import image
pygame.init()
# Константы
SCREEN_WIDTH, SCREEN_HEIGHT = 600, 800
FPS = 30
BLUE_WIDTH, BLUE_HEIGHT = 50, 50
PUCK_WIDTH, PUCK_HEIGHT = 35, 35
# Цвета
WHITE = (255, 255, 255)
GRAY = (50, 50, 50)
GREEN = (0, 200, 0)
BROWN = (139, 69, 19)
BLUE = (0, 0, 255)
ZONE_WIDTH = 400
ZONE_HEIGHT = 600
GATE_WIDTH, GATE_HEIGHT = 100, 10
# Настройка экрана
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Air Hockey")
clock = pygame.time.Clock()
background = pygame.transform.scale(pygame.image.load("assets\\background.png"), (ZONE_WIDTH, ZONE_HEIGHT))
bluepad = pygame.transform.scale(pygame.image.load("assets\\bluepad.png"), (BLUE_WIDTH, BLUE_HEIGHT))
puck = pygame.transform.scale(pygame.image.load("assets\\puck.png"), (PUCK_WIDTH, PUCK_HEIGHT))
redpad = pygame.transform.scale(pygame.image.load("assets\\redpad.png"), (SCREEN_WIDTH, SCREEN_HEIGHT))
pos = pygame.mouse.get_pos()
STICK_RADIUS = 5
BALL_RADIUS = 10
bluepad_speed_y = 10
ball_speed_x = 2
ball_speed_y = 2
LOWER, UPPER = "lower", "upper"
HOME, AWAY = "Player 1", "Player 2"
START_SCORE = {HOME: 0, AWAY: 0}
class Ball():
def __init__(self, x, y, radius):
self.dx = 0
self.dy = 0
self.friction = 0.95
self.rect = pygame.Rect(x, y, radius*2, radius*2)
def draw(self):
screen.blit(puck, self.rect.center)
def update(self):
# Добавляем инерцию
self.dx *= self.friction
self.dy *= self.friction
self.rect.x += self.dx
self.rect.y += self.dy
def check_zone_collision(self, zone):
if not self.rect.top > zone.rect.top:
self.rect.top = zone.rect.top
self.dy = -self.dy
elif not self.rect.bottom < zone.rect.bottom:
self.rect.bottom = zone.rect.bottom
self.dy = -self.dy
if not self.rect.left > zone.rect.left:
self.rect.left = zone.rect.left
self.dx = -self.dx
elif not self.rect.right < zone.rect.right:
self.rect.right = zone.rect.right
self.dx = -self.dx
class Gate():
def __init__(self, x, y):
self.x = x
self.y = y
self.rect = pygame.Rect(x,y,GATE_WIDTH, GATE_HEIGHT)
def draw(self):
pygame.draw.rect(screen, BROWN, self.rect)
class Stick():
def __init__(self, x, y, radius):
self.dragging = False
self.dx = 0
self.dy = 0
self.friction = 0.95
self.rect = pygame.Rect(x, y, radius*2, radius*2)
def draw(self):
pygame.draw.circle(screen, BROWN, self.rect.center, self.rect.width // 2)
screen.blit(bluepad, self.rect.center)
def update(self):
if not self.dragging:
# Добавляем инерцию
self.dx *= self.friction
self.dy *= self.friction
self.rect.x += self.dx
self.rect.y += self.dy
def check_zone_collision(self, zone):
if not self.rect.top > zone.rect.top:
self.rect.top = zone.rect.top
self.dy = -self.dy
elif not self.rect.bottom < zone.rect.bottom:
self.rect.bottom = zone.rect.bottom
self.dy = -self.dy
if not self.rect.left > zone.rect.left:
self.rect.left = zone.rect.left
self.dx = -self.dx
elif not self.rect.right < zone.rect.right:
self.rect.right = zone.rect.right
self.dx = -self.dx
class Bot():
def __init__(self, x, y, radius):
self.dragging = False
self.dx = 0
self.dy = 0
self.friction = 0.95
self.redpad = pygame.transform.scale(pygame.image.load("assets\\redpad.png"), (BLUE_WIDTH, BLUE_HEIGHT))
self.rect = pygame.Rect(x, y, radius*2, radius*2)
def draw(self):
screen.blit(self.redpad, self.rect.center)
pygame.draw.circle(screen, GREEN, self.rect.center, self.rect.width // 2)
def move_bot(self):
if ball.rect.center > self.rect.center and ball.rect.centerx > 450:
self.dy += 1
if ball.rect.center < self.rect.center and ball.rect.centerx > 450:
self.dy -= 1
def update(self):
if not self.dragging:
# Добавляем инерцию
self.dx *= self.friction
self.dy *= self.friction
self.rect.x += self.dx
self.rect.y += self.dy
def check_zone_collision(self, zone):
if not self.rect.top > zone.rect.top:
self.rect.top = zone.rect.top
self.dy = -self.dy
elif not self.rect.bottom < zone.rect.bottom:
self.rect.bottom = zone.rect.bottom
self.dy = -self.dy
if not self.rect.left > zone.rect.left:
self.rect.left = zone.rect.left
self.dx = -self.dx
elif not self.rect.right < zone.rect.right:
self.rect.right = zone.rect.right
self.dx = -self.dx
class Zone():
def __init__(self, x, y, width, height):
self.rect = pygame.Rect(x, y, width, height)
def draw(self):
screen.blit(background, self.rect)
stick = Stick(250, 500, STICK_RADIUS)
ball = Ball(275, 380, BALL_RADIUS)
zone = Zone(100, 100, ZONE_WIDTH, ZONE_HEIGHT)
bot = Bot(250, 250, STICK_RADIUS)
gate_enemy = Gate(250, 100)
gate_my = Gate(250, ZONE_HEIGHT+100)
# Основной цикл игры
running = True
game_status = 'game'
bluepad_speed_y = 0
font_score = pygame.font.Font(None, 20)
while running:
screen.fill(BLUE)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1 and stick.rect.collidepoint(event.pos):
stick.dragging = True
bluepad_speed_y -= 1
if game_status == 'menu':
game_status = 'game'
score = [0, 0]
elif event.type == pygame.MOUSEBUTTONUP:
stick.dragging = False
bluepad_speed_y += 1
elif event.type == pygame.MOUSEMOTION:
if stick.dragging:
dx, dy = event.rel
stick.rect.x += dx
stick.rect.y += dy
stick.dx = dx
stick.dy = dy
zone.draw()
gate_my.draw()
gate_enemy.draw()
stick.update()
stick.draw()
stick.check_zone_collision(zone)
ball.update()
ball.draw()
ball.check_zone_collision(zone)
bot.draw()
bot.move_bot()
if gate_enemy.rect.colliderect(ball.rect):
running = False
if gate_my.rect.colliderect(ball.rect):
running = False
if ball.rect.colliderect(stick.rect):
ball.dx = stick.dx
ball.dy = stick.dy
stick.dx = -stick.dx
stick.dy = -stick.dy
keys = pygame.key.get_pressed()
font_score.render(f"Score{score}", True, WHITE)
message_score = font_score.render(f"Score {score}", True, WHITE)
message_rect = message_score.get_rect(center=(290, SCREEN_HEIGHT - 50))
screen.blit(message_score, message_rect)
pygame.display.flip()
clock.tick(FPS)
pygame.quit()