묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
reduxjs/toolkit 에서 loadPost 한번만 가게하기
제로초쌤 강의를 들으면서 redux, redux-saga로 작성하신걸 깃헙 소스코드 참고하고 스스로 해보면서 toolkit으로 변환하면서 해보고 있는데 toolkit에서는 따로 한번만 요청이 가게 할 수 없나요..?제 코드 첨부하겠습니다<pages > index.js> useEffect(() => { function onScroll(){ console.log(window.scrollY, document.documentElement.clientHeight, document.documentElement.scrollHeight); if(window.scrollY + document.documentElement.clientHeight > document.documentElement.scrollHeight - 300){ if(hasMorePosts && !loadPostsLoading){ dispatch(loadPost(10)); console.log(loadPostsLoading); } } } window.addEventListener('scroll', onScroll); return () => { window.removeEventListener('scroll', onScroll); } }, [hasMorePosts])<actions > post.js>export const loadPost = createAsyncThunk('post/loadPosts' , async (data , thunkAPI) => { try{ const result = await delay(getDummyPost(data), 1000); return result; } catch(error){ console.log(error); } }); <reducers > postSlice.js> .addCase(loadPost.pending, (state, action) => { state.loadPostsLoading = true; state.loadPostsDone = false; state.loadPostsError = null; }) .addCase(loadPost.fulfilled, (state, action) => { state.loadPostsLoading = false; state.loadPostsDone = true; state.mainPosts = action.payload.concat(state.mainPosts); state.hasMorePosts = action.payload.length < 100; }) .addCase(loadPost.rejected, (state, action) => { state.loadPostsLoading = false; state.loadPostsError = action.error; })
-
미해결Node.js에 TypeScript 적용하기(feat. NodeBird)
Sequelize constructor.primaryKeyAttributes 오류
안녕하세요 제로초님 이전에 알려주신 Sequelize 타이핑 덕뿐에 문제 잘 해결했습니다.[0] Executing (default): SELECT `id`, `email`, `nick`, `password`, `provider`, `snsId`, `createdAt`, `updatedAt`, `de letedAt` FROM `users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`id` = 1); [0] TypeError: Cannot read properties of undefined (reading 'length') [0] at Box._initValues (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:130:49) [0] at new Model (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:116:10) [0] at new Box (C:\workspace\Dev-Mark\server\models\box.js:31:1) [0] at Box.build (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:1326:12) [0] at Box.create (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:1344:23) [0] at C:\workspace\Dev-Mark\server\controller\box.js:36:44 [0] at Generator.next (<anonymous>) [0] at C:\workspace\Dev-Mark\server\controller\box.js:8:71 [0] at new Promise (<anonymous>) [0] at __awaiter (C:\workspace\Dev-Mark\server\controller\box.js:4:12) [0] C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:83 [0] for (const key of Object.keys(this.constructor._attributeManipulation)) { [0] ^ [0] [0] TypeError: Cannot convert undefined or null to object [0] at Function.keys (<anonymous>) [0] at Timeout._onTimeout (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:83:34) [0] at listOnTimeout (node:internal/timers:564:17) [0] at process.processTimers (node:internal/timers:507:7) [0] [0] Node.js v18.13.0 [1] [HPM] Error occurred while proxying request localhost:3000/api/box/ to http://localhost:5000/ [ECONNRESET] (https ://nodejs.org/api/errors.html#errors_common_system_errors) [0] npm run server exited with code 1 --> Sending SIGTERM to other processes.. [1] npm run client exited with code 1이번에는 라는 오류가 나오는데요,stackoverflow를 읽어보니 default value를 지정하라는 말도 있고 init을 하지 않았다는 말도 있는데 둘 다 제 케이스에는 해당하지 않는 것 같습니다.sequelize 공식문서에서도 읽어보았지만 문제가 뭔지 잘 모르겠습니다...Box.js (변환)"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sequelize_1 = __importStar(require("sequelize")); const user_js_1 = __importDefault(require("./user.js")); class Box extends sequelize_1.Model { static initiate(sequelize) { Box.init({ id: { type: sequelize_1.default.INTEGER, primaryKey: true, autoIncrement: true, }, box: { type: sequelize_1.default.STRING(15), allowNull: false, }, img: { type: sequelize_1.default.STRING(200), allowNull: true, }, createdAt: sequelize_1.default.DATE, updatedAt: sequelize_1.default.DATE, }, { sequelize, timestamps: true, underscored: false, modelName: "Box", tableName: "boxs", paranoid: false, charset: "utf8mb4", collate: "utf8mb4_general_ci", }); } static associate() { Box.belongsTo(user_js_1.default); } } exports.default = Box; box.tsimport Sequelize, { CreationOptional, InferAttributes, InferCreationAttributes, Model, ForeignKey, } from "sequelize"; import User from "./user.js"; class Box extends Model<InferAttributes<Box>, InferCreationAttributes<Box>> { declare id: CreationOptional<number>; declare box: string; declare img: string; declare createdAt: CreationOptional<Date>; declare updatedAt: CreationOptional<Date>; declare UserId: ForeignKey<User["id"]>; static initiate(sequelize: Sequelize.Sequelize) { Box.init( { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, }, box: { type: Sequelize.STRING(15), allowNull: false, }, img: { type: Sequelize.STRING(200), allowNull: true, }, createdAt: Sequelize.DATE, updatedAt: Sequelize.DATE, }, { sequelize, timestamps: true, underscored: false, modelName: "Box", tableName: "boxs", paranoid: false, charset: "utf8mb4", collate: "utf8mb4_general_ci", } ); } static associate() { Box.belongsTo(User); } } export default Box; user.tsimport Sequelize, { CreationOptional, InferAttributes, InferCreationAttributes, Model, BelongsToManyAddAssociationMixin, NonAttribute, } from "sequelize"; class User extends Model<InferAttributes<User>, InferCreationAttributes<User>> { declare id: CreationOptional<number>; // 'CreationOptional' is a special type that marks the field as optional // id can be undefined during creation when using `autoIncrement` declare email: string; declare nick: string; declare password: CreationOptional<string>; declare provider: CreationOptional<string>; declare snsId: CreationOptional<string>; declare createdAt: CreationOptional<Date>; // createdAt can be undefined during creation declare updatedAt: CreationOptional<Date>; // updatedAt can be undefined during creation declare deletedAt: CreationOptional<Date>; // ... static initiate(sequelize: Sequelize.Sequelize) { User.init( { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, }, email: { type: Sequelize.STRING(40), allowNull: true, unique: true, }, nick: { type: Sequelize.STRING(15), allowNull: false, }, password: { type: Sequelize.STRING(100), allowNull: true, }, provider: { type: Sequelize.ENUM("local", "kakao", "github"), allowNull: false, defaultValue: "local", }, snsId: { type: Sequelize.STRING(30), allowNull: true, }, createdAt: Sequelize.DATE, updatedAt: Sequelize.DATE, deletedAt: Sequelize.DATE, }, { sequelize, timestamps: true, underscored: false, modelName: "User", tableName: "users", paranoid: true, charset: "utf8", collate: "utf8_general_ci", } ); } static associate() { } } export default User; index.tsimport Sequelize from 'sequelize'; import configObj from '../config/config.js'; import User from './user.js'; import Post from './post.js'; import Hashtag from './hashtag.js'; import Alarm from './alarm.js'; import Bookmark from './bookmark.js'; import Box from './Box.js'; const env = process.env.NODE_ENV as 'production' | 'test' || 'development'; const config = configObj[env]; export const sequelize = new Sequelize.Sequelize( config.database, config.username, config.password, config, ); Alarm.initiate(sequelize); Bookmark.initiate(sequelize); Box.initiate(sequelize); Hashtag.initiate(sequelize); Post.initiate(sequelize); User.initiate(sequelize); Alarm.associate(); Bookmark.associate(); Box.associate(); Hashtag.associate(); Post.associate(); User.associate();
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
M:N 등록/조회 API 작성에서 Typescript 문제 질문드립니다.
안녕하세요. 제가 찾고 기다리던 내용의 강의라 매우 만족하며 수강하고 있는 수강생입니다! ㅎproducts.service.ts 파일에서 create와 update 메서드 작성할 때 typescript 에러에 대해 질문드립니다.products.service.ts 파일 create 메서드에서 productTags를 등록하는 과정에const result2 = [] 부분을 const result2: string[]로 작성하면 await productRepository.save(...) 에서 No overload matches this call이 뜨고update 메서드에서 updateProductInput에 UpdateProductInput로 타입을 지정하면 위와 마찬가지로 await productRepository.save(newProduct)에서 No overload matches this call이 뜹니다.두 경우 모두 Type 'string' is not assignable to type 'ProductTag' 문제로 product.entity.ts에서는 productTag를 아래와 같이 등록하고 @Field(() => [ProductTag]) @JoinTable() @ManyToMany(() => ProductTag, (productTags) => productTags.products) productTags: ProductTag[]; createProduct.input.ts에서는 CreateProductInput에서 productTag를 아래와 같이 등록해서 발생하는 문제라고 추측했습니다.@Field(() => [String]) productTags: string[];두 경우 모두 타입을 지정하지 않고 any로 두면 문제는 사라지긴 합니다. any로 두고 사용할 수밖에 없는 것인지 아니면 타입 지정을 해서 사용하는 방법이 있는지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mysql 데이터베이스 연결 안되는 문제 Unable to connect to the database
yarn start:dev 실행 하고 나면 아래와 같이 나오면서 에러가 뜨고 있어요 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...아래 코드도 정상적으로 기입 했는데, 계속 접속 오류로 연결이 되지가 않습니다.import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo' import { Module } from '@nestjs/common' import { GraphQLModule } from '@nestjs/graphql' import { TypeOrmModule } from '@nestjs/typeorm' import { BoardsModule } from './apis/boards/boards.module' import { Board } from './apis/boards/entities/board.entity' @Module({ imports: [ BoardsModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: 'test1234', database: 'myproject03', entities: [Board], synchronize: true, logging: true, }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {} 현재 brew 확인시 Mysql 서버도 정상적으로 켜져 있는것을 확인 할 수 있어요 디비버에서도myproject03 이라고 정확하게 만들었습니다.선생님의 강의하고 다른부분을 못 찾았는데,데이터 베이스가 연결이 안될 때는 어느부분을 더 점검 해 봐야 할지요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
http://localhost:3000/graphql 실행 후 query > getHello 시 오류
http://localhost:3000/graphql 실행 후 query > getHello 시 오류가 있습니다.코드는 오타 없이 동일 한데, 저는 실행시 http://localhost:3000/graphql 여기서 아래와 같은 오류가 뜨는데 어떤 상황인지 파악이 잘 되지가 않습니다.{ "errors": [ { "message": "Cannot return null for non-nullable field Query.getHello.", "locations": [ { "line": 2, "column": 3 } ], "path": [ "getHello" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "stacktrace": [ "Error: Cannot return null for non-nullable field Query.getHello.", " at completeValue (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/graphql/execution/execute.js:594:13)", " at /Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/graphql/execution/execute.js:486:9", " at processTicksAndRejections (node:internal/process/task_queues:95:5)", " at async Promise.all (index 0)", " at execute (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/requestPipeline.ts:501:14)", " at processGraphQLRequest (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/requestPipeline.ts:407:22)", " at processHTTPRequest (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/runHttpQuery.ts:436:24)" ] } } } ], "data": null } app.module.ts 에도 정상적으로 연결 해 두었습니다.import { Module } from '@nestjs/common' // import { AppController } from './app.controller'; // import { AppService } from './app.service'; import { BoardsModule } from './apis/boards/boards.module' import { GraphQLModule } from '@nestjs/graphql' import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo' @Module({ imports: [ BoardsModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {}
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
Promise.all에 대한 질문
선생님 안녕하세요.이번 강의에서 사용된 Promise.all이 뭔지 몰라서찾아보니 async-await를 사용하면 비동기 동작의 상태가 완료될 때까지 기다린 후 다음 코드를 순차적으로 읽어나가다보니 이렇게 기다리는 시간을 개선하기 위해 Promise들을 병렬로 처리해 주는 것으로 확인됩니다.근데 이번 강의에서 Promise.all을 빼고 이미지를 업로드해보면 아래의 사진처럼 네트워크의 preview에서 아무 값도 담기지 않게 됩니다.Promise.all이 처리속도를 개선해 주기 위한 기능이라면 Promise.all을 사용하지 않아도 우선 값은 담겨야 하는게 아닐까 하는 생각이 드는데 왜 값이 담기지 않게 되는지 궁금합니다.
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
Error response from daemon: Ports are not available
PS B:\SSYW\saju-backend-nodejs-master> docker-compose up -d[+] Running 12/12[+] Running 1/2 - Network saju-backend-nodejs-master_default Created 9.3s - Container saju_nodejs_mysql Starting 42.3sError response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3309 -> 0.0.0.0:0: listen tcp 0.0.0.0:3309: bind: An attempt was made to access a socket in a way forbidden by its access permissions.PS B:\SSYW\saju-backend-nodejs-master> 죄송한데요. 포트를 사용할 수가 없습니다. 해결 방법좀 가르쳐 주세요. ~~
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
length 오류
콘솔 결과와 error가 같이 출력됩니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
맥 nodejs를 lts버전으로 설치하는데 다른설치가 완료되기를 기다리는중 이라면서 계속 설치가안됩니다.
저는 일전에 윈도우에서도 nodejs를 사용했었는데 지금 맥으로 넘어왔는데 계속 설치단계에서 다른 설치가 완료되기를 기다리는중이라면서 설치가 안됩니다.
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
node_modules/.bin/webpack 오류가 납니다
node_modules/.bin/webpack --help 하면 이러한 오류가 나는데 이건 왜그런걸까요?
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
docker-compose up -d no configuration file provided: not found
PS B:\SSYW\saju-backend-nodejs-master> docker-compose up -dno configuration file provided: not found 이렇게 나옵니다. 어떻게 하면 해결할 수 있나요? 도커는 설치되어 있습니다.처음엔 되었는데(import?) , sql 워크브렌치 하다가 이상하게 되었습니다.해결 부탁합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
react-router-dom link클릭시 이동이 안되는 오류
안녕하세요 강사님해당 상품을 클릭했을때 url은 바뀌지만 상품상세페이지로 화면은 바뀌지 않는 오류가 발생했습니다(새로고침하면 화면이 바뀌긴 합니다)다른 수강생들의 비슷한 질문답변을 참고하여 <React.StrictMode>를 지워도보고 react-router-dom 버전도 5.2.0이고 Route path도 "/products/:id"라고 적었는데 여전히 오류가 해결되지 않습니다https://github.com/kanghanju/grab-market-client/commit/01c0657f4f64398b47493c1b2c3b44836bf1a785#여기는 Link태그 해당 수업코드 파일입니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
반응형으로 만드는 방법
열심히 수업을 들으면서 포트폴리오도 따라서 해보는 중인 수강생입니다.게시판 포트폴리오에서 반응형으로 바꾸는 건 수업에 없나요?(강사님이 올려주시는 포트폴리오 예시(?) 답지(?)를 적용해도 반응형은 아니더라구요)@media 쿼리로 적용하는 방법 ( emotion으로 반응형 만드는 방법)을 구글링 해보아도적용하는 방법을 모르겠습니다ㅠ뒤에 수업에 있는 건가요? 아니면 제가 따로 해야하는건가요?구글링해도 쉽지가 않아서 질문 남기는거라... 자세한 답변 부탁드리겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요 게시판 섹션1 포트폴리오 관련 질문 있습니다.
강사님 안녕하세요.소주제 - 이모션까지 강의를 보고 복습, 퀴즈를 진행한 뒤 피그마를 참고하여 포트폴리오1 게시판을 만들었습니다.등록하기 버튼까지 다 만들고 부족한 부분은 리뷰 강의를 본 후에 강사님 코드를 참고하여 틀린 부분들을 고치면서 보강했습니다.그런데 코드를 참고하여 틀린 부분들을 다 고쳤다고 생각했는데 딱 두군데가 맞지 않아서 몇 시간 동안 원인을 못 찾고 있어, 문의를 드립니다.제가 노란색으로 표시한 두 부분이 튀어나왔는데 저 부분은 몇 시간 동안 찾아보고 비교해봐도 왜 저런지를 모르겠어서 최후의 수단으로 강사님 index.js랑 emotion.js 코드를 전부 복붙해봤는데도 저 두 곳이 튀어나온 상태에서 바뀌질 않습니다. 버전 때문에 그런가 해서 버전 다시 맞추고 yarn install 해봐도 똑같습니다 ㅠㅠ(그런데 강사님 git 코드를 clone 한걸 실행하면 정상적으로 랜더링 됩니다)강사님의 index, emotion 코드를 붙여 넣어봐도 저 상태인거 보면 코드가 아니라 어디쪽 문제일까요..?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
vscode 확장 어떤거 사용하시나요?
vscode 강의랑 맞출려고하는데 확장 어떤거 사용하셨을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
리액트 안에 gql 적용시 설치 패키지 질문
질문1 리액트에 gql 적용시 영상과다르게 아래와같이 단색으로 프로그래밍 됩니다어떤 패키지를 적용해야 할까요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
node.js vscode 콘솔출력
vscode 터미널에 index.js 콘솔을 출력하려고 따라 작성했는데 node : 'node' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ node index.js+ ~~~~ + CategoryInfo : ObjectNotFound: (node:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 이런 오류가 나면서 콘솔이 나타나지 않는데 이유 알 수 있을까요?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
nunjucks res.render('error'); 작동을 안합니다.
안녕하세요. 강사님.현재 learn-sequelize MySQL 부분을 실습하고 있습니다.그런데 실습 과정중 이름(UNIQUE INDEX ) 을 중복되게 생성하여 일부러 오류를 일으켰으나error.html 페이지가 호출 되지 않고있습니다.사용자 생성 router 부분은router.route('/').get(async (req, res, next) => {try {const users = await User.findAll();res.json(users);} catch(err) {console.error(err);next(err);}}).post(async (req, res, next) => {try {const user = await User.create({name : req.body.name,age : req.body.age,married : req.body.married});console.log(user);res.status(201).json(user); // status 201 작성됨(생성됨) 뜻} catch(err) {console.error(err);next(err); // <== next(err) 로 전달하나 error.html을 호출하지 못함}});입니다.app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; err.status = err?.status ?? 500; res.status(err.status); console.log('test'); //<== 로그는 찍힘 res.render('error');//error.html render안됨});res.render('error') 가 되지 않고 있습니다. 라우터 경로 테스트 결과app.use((req, res, next) => {const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`);error.status = 404;next(error);});라우터 경로 오류시에는 정상적으로 호출하는 것으로 보아 문제는 없는 것 같은데 원인을 찾지 못하고 있습니다.잘 부탁드립니다.-- 에러 로그는 다음과 같습니다. ---- users 테이블에 중복된 이름을 입력 하였을 때 오류 내용으로 500 에러로 보아error.html 호출이 되어야 하지만 호출이 되지 않고 있습니다.Executing (default): INSERT INTO users (`id`,`name`,`age`,`married`,`created_at`) VALUES (DEFAULT,?,?,?,?);Errorat Query.run (D:\nodeExer\node_exer1\learn-sequelize\node_modules\sequelize\lib\dialects\mysql\query.js:52:25)at D:\nodeExer\node_exer1\learn-sequelize\node_modules\sequelize\lib\sequelize.js:314:28at processTicksAndRejections (internal/process/task_queues.js:95:5)at async MySQLQueryInterface.insert (D:\nodeExer\node_exer1\learn-sequelize\node_modules\sequelize\lib\dialects\abstract\query-interface.js:308:21)at async User.save (D:\nodeExer\node_exer1\learn-sequelize\node_modules\sequelize\lib\model.js:2432:35)at async Function.create (D:\nodeExer\node_exer1\learn-sequelize\node_modules\sequelize\lib\model.js:1344:12)at async D:\nodeExer\node_exer1\learn-sequelize\routes\users.js:22:26 {name: 'SequelizeUniqueConstraintError',errors: [ValidationErrorItem {message: 'name_UNIQUE must be unique',type: 'unique violation',path: 'name_UNIQUE',value: 'aa',origin: 'DB',instance: [User],validatorKey: 'not_unique',validatorName: null,validatorArgs: []}],parent: Error: Duplicate entry 'aa' for key 'users.name_UNIQUE'at Packet.asError (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\packets\packet.js:728:17)at Execute.execute (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\commands\command.js:29:26)at Connection.handlePacket (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\connection.js:456:32)at PacketParser.onPacket (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\connection.js:85:12)at PacketParser.executeStart (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\packet_parser.js:75:16)at Socket.<anonymous> (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\connection.js:92:25)at Socket.emit (events.js:400:28)at addChunk (internal/streams/readable.js:293:12)at readableAddChunk (internal/streams/readable.js:267:9)at Socket.Readable.push (internal/streams/readable.js:206:10) {code: 'ER_DUP_ENTRY',errno: 1062,sqlState: '23000',sqlMessage: "Duplicate entry 'aa' for key 'users.name_UNIQUE'",sql: 'INSERT INTO users (`id`,`name`,`age`,`married`,`created_at`) VALUES (DEFAULT,?,?,?,?);',parameters: [ 'aa', '11', false, '2022-12-14 17:38:07' ]},original: Error: Duplicate entry 'aa' for key 'users.name_UNIQUE'at Packet.asError (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\packets\packet.js:728:17)at Execute.execute (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\commands\command.js:29:26)at Connection.handlePacket (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\connection.js:456:32)at PacketParser.onPacket (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\connection.js:85:12)at PacketParser.executeStart (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\packet_parser.js:75:16)at Socket.<anonymous> (D:\nodeExer\node_exer1\learn-sequelize\node_modules\mysql2\lib\connection.js:92:25)at Socket.emit (events.js:400:28)at addChunk (internal/streams/readable.js:293:12)at readableAddChunk (internal/streams/readable.js:267:9)at Socket.Readable.push (internal/streams/readable.js:206:10) {code: 'ER_DUP_ENTRY',errno: 1062,sqlState: '23000',sqlMessage: "Duplicate entry 'aa' for key 'users.name_UNIQUE'",sql: 'INSERT INTO users (`id`,`name`,`age`,`married`,`created_at`) VALUES (DEFAULT,?,?,?,?);',parameters: [ 'aa', '11', false, '2022-12-14 17:38:07' ]},fields: { name_UNIQUE: 'aa' },sql: 'INSERT INTO users (`id`,`name`,`age`,`married`,`created_at`) VALUES (DEFAULT,?,?,?,?);'}POST /users 500 52.768 ms - 785
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
multer 한글 파일 업로드시 파일명이 깨져요.
multer 로 한글 이미지를 올렸습니다.한글 이미지 명은 각각 '꽃1.jpg', '꽃2.jpg' 입니다.아래 req.files 로그에서보시면 한글명이 깨져서 나오는 데요. 한글명이 깨지지 않도록 할 수 있는 방법이 없을까요?req.files [Object: null prototype] {image1: [{fieldname: 'image1',originalname: 'ê½\x831.jpg',encoding: '7bit',mimetype: 'image/jpeg',destination: 'uploads/',filename: 'ê½\x8311670868094390.jpg',path: 'uploads\\ê½\x8311670868094390.jpg',size: 77675}],image2: [{fieldname: 'image2',originalname: 'ê½\x832.jpg',encoding: '7bit',mimetype: 'image/jpeg',destination: 'uploads/',filename: 'ê½\x8321670868094392.jpg',path: 'uploads\\ê½\x8321670868094392.jpg',size: 73716}]}
-
미해결
node.js powerShell 실행
vs 깔아서 nodejs 실행 하려고 npx 만드려고 하는데 거부되었다고 합니다