묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
그레들 빌드에서 오류
(사진)
-
미해결스프링 핵심 원리 - 기본편
Request 중 Bean 활용에 대한 질문
안녕하세요 강사님! 다름이 아니라 강의 내용을 토대로 앱 빌딩에 활용해보고 있던 중에 질문이 있어서 질문을 남기게 되었습니다.기존 외부 Library 는 다음과 같았습니다.public class SSOAuth { private HttpServletRequest request; private HttpServletResponse response; private Map<String, Object> attributes = new HashMap<String, Object>(); private Properties properties; // 생성자 public SSOAuth (HttpServletRequest request, HttpServletResponse response) throws IOException { this.request = request; this.response = response; this.properties = new Properties(); // 초기화로 보임 // File 에 있는 properties 정보로 통신 준비 InputStream is = null; File file = new File("C:/spring/processdesign/processdesign/src/ssoconfig.properties"); if(!file.exists()) { System.out.println("File Not Found :( = " + file.getAbsolutePath()); throw new IOException("파일을 찾을 수 없습니다"); } is = new FileInputStream(file); this.properties.load(is); is.close(); } public void ssoLogin() throws IOException { return "login정보로 형성한 url"; } ... } 다음과 같이 SsoAuth 객체에 Bean 주입을 통해서 Spring Container 에 등록될 수 있게 해보았습니다.@Component public class SSOAuth { private final HttpServletRequest request; private final HttpServletResponse response; private Map<String, Object> attributes = new HashMap<String, Object>(); private Properties properties; @PostConstruct private void initBean() throws IOException { this.properties = new Properties(); InputStream is = null; File file = new File("C:/spring/~/~/src/ssoconfig.properties"); if (!file.exists()) { System.out.println("File Not Found :( = " + file.getAbsolutePath()); throw new IOException("파일을 찾을 수 없습니다"); } is = new FileInputStream(file); this.properties.load(is); is.close(); } // @Autowired public SSOAuth(HttpServletRequest request, HttpServletResponse response) throws IOException { this.request = request; this.response = response; System.out.println("request = " + request); System.out.println("response = " + response); } ... } 다만 하다보니 SSOAuth 의 생성자로 사용되는 HttpServletRequest 와 HttpServletResponse 들은 매 통신마다 일회용으로 쓰이는 정보들로 알고 있는데 (즉, 스프링 컨테이너의 관리 대상인 싱글톤 객체가 아닌걸로 알고 있는데) 이와 같은 경우는 그냥 Bean 등록 대상이 아닌걸까요??등록 대상이 아니면 생성시 어떻게 받는지 궁금해서 생성자에 프린트를 찍어본 후 앱을 실행시켰는데, Spring Container 가 Bean 생성을 할 때 다음과 같이 프린트를 찍어주는 것 같습니다. 여기서 이게 무슨 의미인지 알 수 있을까요?request = Current HttpServletRequestresponse = Current HttpServletResponse(정리하자면 의존성 주입 대상이 아닌(?) 변수들을 Params 로 가지고 있을 경우 Bean 등록이 어떻게 이루어지는지 궁금한 것 같습니다) @RestController @RequestMapping("/sso") @RequiredArgsConstructor public class SSORequestController { public final SSOAuth auth; @GetMapping("/requestAuth") public String requestSsoAuth(HttpServletRequest request, HttpServletResponse response) throws IOException { auth.ssoLogin(); System.out.println("Hello"); return "Hello"; }이어서 위와 같이 컨트롤러를 생성하였을 때 잘 동작을 하게 됩니다. 어떻게 자동으로 해당 컨트롤러 메소드가 호출되지도 않았는데, SSORequestController 가 의존성 주입을 받을 때 사용되는 컨트롤러의 HttpServletRequest, httpServletResponse 객체를 주입시켜 SSOAuth 객체를 생성하는지 궁금합니다! 감사합니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
npm run dev
안녕하세요 수업 너무재밌게듣고있습니다근데 여기서 막혀버려서 잘찾아보려고 해도 모르겠습니다데이터베이스 연결어떻게 확인하는건지 몰라서요.. PS C:\Users\DELL\Desktop\reddit-clone-app\server> npm run dev> server@1.0.0 dev> nodemon --exec ts-node ./src/server.ts[nodemon] 2.0.20[nodemon] to restart at any time, enter rs[nodemon] watching path(s): .[nodemon] watching extensions: ts,json[nodemon] starting ts-node ./src/server.tsserver running at http://localhost:4000Error: connect ECONNREFUSED 127.0.0.1:5432at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1247:16) {errno: -4078,code: 'ECONNREFUSED',syscall: 'connect',address: '127.0.0.1',port: 5432} 오류가 나는데 pkill node 해도 안되요 PS C:\Users\DELL\Desktop\reddit-clone-app\server> pkill nodepkill : 'pkill' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ pkill node+ ~~~~~+ CategoryInfo : ObjectNotFound: (pkill:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException tsconfig.json{ "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Projects */ // "incremental": true, /* Enable incremental compilation */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ "experimentalDecorators": true /* Enable experimental support for TC39 stage 2 draft decorators. */, "emitDecoratorMetadata": true /* Emit design-type metadata for decorated declarations in source files. */, // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ /* Modules */ "module": "commonjs" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "resolveJsonModule": true, /* Enable importing .json files */ // "noResolve": true, /* Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, /* Type Checking */ "strict": false /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ "strictPropertyInitialization": false /* Check for class properties that are declared but not set in the constructor. */, // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ } } 여기서 오류가났는데 어떻게 해결해야되나요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
jsonserializable
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! jsonserializable대신 freezed 써도 무방한가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 자료 요청드립니다~!
안녕하세요~강의 자료 요청드립니다!메일로 전달 부탁드립니다~메일: tjswjd7377@naver.com감사합니다.
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
user_loader 관련
안녕하세요. 블로그 구독 기능 구현하기 강의 13분 50초 경에 밑의 blog_abtest.py 파일에서 load_user 함수에 user_id 인자는 flask login이 http request에서 자동으로 id 추출한다고 하셨는데 궁금한 게 있습니다.1. 추출되는 대상은 User(UserMixin)에서 만든 user 객체인가요 ?2. 자동으로 id를 추출한다고 했는데 만약 대상이 id가 아닌 다른걸로 하고 싶다면 어떻게 설정하나요? 예를 들어 email을 받아서 User.get함수에서 인자로 사용하고 싶다거나?@login_manager.user_loader def load_user(user_id): return User.get(user_id)
-
미해결지금 당장 데브옵스 AWS
텍스트 대로 따라하기만 하면 되는건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 구매해서 수강하고 있는데 텍스트 대로 따라하기만 하면 실제로 서비스를 운영할 수 있는 정도의 인프라를 구축할 수 있는건가요?그리고 aws클라우드 사용하면 추가적인 요금이 요구되는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ddl-auto : none 문의 입니다.
application.yml에서 ddl-auto : none으로 하였는데 스프링 재시작했을 경우 DB가 Drop되어 초기화 됩니다. .. 어떻게 해야하나요?
-
미해결스프링 기반 REST API 개발
테스트 오류 질문드립니다.
<입력값 제한하기> 강의에서 Expected와 Actual이 같은데도테스트가 실패합니다. 도와주세요..andExpect(jsonPath("eventStatus").value(EventStatus.DRAFT))값은 정상인데 대체 왜 실패라고 뜨는건가요?
-
해결됨Spring Boot JWT Tutorial
WebSecurityConfigurerAdapter deprecated
WebSecurityConfigurerAdapter 가 이제 더 이상 지원을 하지 않는다고 하여 WebSecurityFilterChain으로 하래서 시도중인데 계속하여 401 에러가 뜹니다...@EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http .authorizeRequests() .antMatchers("api/hello").permitAll() .anyRequest().authenticated(); return http.build(); } }
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
선생님 검색창 클릭을 못해요 ㅠ
선생님 검색창을 클릭을 못하고 있는데 코드 그대로 작성 헀는데 제 나름 오타를 찾아보겠다고 찾아 봤지만 놓쳤는지 뭐가 원인인지 모르겠어요ㅠㅠ코드는 이렇게 작성헀습니다.from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time # 브라우저 생성 browser = webdriver.Chrome('c:/chromedriver.exe') # mac 의 경우 /User/내거로/Documents/chromedriver # 웹 사이트 열기 browser.get('https://www.naver.com') browser.implicitly_wait(10) # 로딩이 끝날 때까지 10초 기다림 # 쇼핑 메뉴 클릭하기 browser.find_element(By.CSS_SELECTOR, "a.nav.shop").click() time.sleep(2) # 검색창 클릭 search = browser.find_element(By.CSS_SELECTOR, "input.co_srh_input._input") search.click() # 검색어 입력 search.send_keys("아이폰13") search.send_keys(Keys.ENTER) # 스크롤 전 높이. before_h = browser.execute_script("return window.scrollY") # 무한 스크롤 while True: #맨 아래로 스크롤을 내린다. browser.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) # 스크롤 사이 페이지 로딩 시간 time.sleep(1) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h #상품 정보 div items = browser.find_elements(By.CSS_SELECTOR, ".basicList_info_area__TWvzp") for item in items : name = item.find_elements(By.CSS_SELECTOR, ".basicList_title__VfX3c").text # text만 추출 pirce = item.find_elements(By.CSS_SELECTOR, ".price_num__S2p_v").text link = item.find_elements(By.CSS_SELECTOR, ".price_num__S2p_v > a").get_attribute('href') print(name, pirce, link)
-
미해결대세는 쿠버네티스 (초급~중급편)
쿠버네티스 클러스터 노드 연결 문제
현재 Master Node, Worker Node 두개로 클러스터 구성하려합니다.안녕하세요, 강사님강사님의 쿠버네티스 강의를 듣고 실전에서 수행 중에 있습니다. Master Node와 Worker Node의 클러스터 구성중에 있는데 Master 노드에서 init(sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.0.67) 명령문 시행하고 나온 출력 명령문을 워커노드에서 입력했는데 이렇게 뜨네요...마스터노드에서 kubectl get pods --all-namespaces하면 'flannel'은 정상적으로 ruunning 상태입니다. 현재 환경에 대해서 자세히 말씀드리자면, nhn클라우드에서 cpu서버(master 노드)와 gpu서버(워커 노드) 간 클러스터를 구성하려 하고 있고, 두 서버간 피어링 되어있습니다.마스터 노드 eth0 ip는 192.168.0.67, 워커노드 eth0 ip는 10.0.0.3으로 대역대가 다르지만, 위에서 말한 피어링을 통해 통신은 가능한 상태입니다. (워커노드에서 ping 192.168.0.67하면 응답함)뭐가 문제일까요??? ㅜㅜㅜ 방화벽 해제, 노드 오픈, 서버 시간 동기화, swapoff(마스터, 워커 둘다 함) 다했는데도 안되는 이유가 뭘까요...
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Run하는 화면에서 찍히는 로그없애기
코딩후 run실행하면 강사님은 화면에 프린트찍는것만 나오는데, 저는 각종 로그리스트같은게 쭉쭉 동작할때마다 같이 나옵니다. 설정을 찾아봐도 숨길수가 없네요. Run 탭에서 print한것만 찍히게 안드로이드 설정바꾸는게 어떤건지좀 알려주세요.
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
결과페이지에서 result-0,1,23,....html 호출하기
안녕하세요!! 덕분에 결과물도 만들고 지금은 저만의 mbti테스트도 진행하고 있습니다. qna페이지가 모두 끝나고 결과페이지에서 공유용으로 만든 페이지 result(0,1,2,3...).html을 호출하고 싶은데 어떻게 하면 될까요??
-
미해결팀 개발을 위한 Git, GitHub 입문
수업자료부탁드립니다.
수업자료 전달 부탁드립니다.jamook3023@naver.com
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
cmd gradlew 무응답
윈도우이고 cmd로gradlewgradlew.bat둘 다 입력해도 아무 반응이 없네요 libs 폴더도 안생기고
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
리덕스 실제 구현하기 강의 질문
안녕하세요 수강생입니다. 강의 내용중 질문이 있어 여쭤봅니다.1.이렇게 initailState를 넣고,const initialState = { user: { isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], } }; 이렇게 case에 적으셨는데 case 'LOG_IN': return { ...state, user: { ...state.user, isLoggedIn: true, user: action.data }, }; user:{...state, <====이부분은 초기 state 전체로 이해하고있고,user :{ ...state.user, <=====이건 초기 state의 user:{ }정보가 들어가는건데, 이미 다 들어간 상태에서 왜 또 isLoggedIn:true, user: action.data가 들어가는것인가요?혹시 수정하는부분은 ...state.user로 일단 기존 state.user값을 넣어놓아야되고, 그밑에 변경할것들을 적어주면 알아서 중복되는것들을 변경해주는건가요?? 저는 밑처럼 ..state.user, 를 빼는게 맞다고 생각하고 있었거든요. case 'LOG_IN': return { ...state, user: { isLoggedIn: true, user: action.data }, }; 아래 같은 에러가 나서 여쭤봅니다.store_configureStore__WEBPACK_IMPORTED_MODULE_4___default.a.withRedux is not a fu at Module../pages/_app.js _app.jsimport 'antd/dist/antd.css'; import { PropTypes } from 'prop-types'; import React from 'react'; import Head from 'next/head'; import wrapper from '../store/configureStore' const PickMe = ({ Component }) => { return ( <> <Head> <meta charSet="utf-8"/> <title>PICK-ME</title> </Head> <Component /> </> ) }; PickMe.propTypes = { Component: PropTypes.elementType.isRequired, } export default wrapper.withRedux(PickMe);
-
미해결스프링 시큐리티 OAuth2
10:40 질문
Resource Owner Password Credentials Grant Type 편질문합니다.데이터 입력하고 'send' 버튼 클릭2.access_token 복사 3.userinfo 에 Authentication 값에 붙여넣고 'send' 버튼 클릭새로 요청을 해도 응답 결과는 그대로입니다.
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
multer memoryStorage 질문 입니다!!
엑셀 파일 제어로 어제 질문 드렸었는데요!엑셀 파일 제어를 하려다보니 xlsx 라는 모듈이 있더라구요!문제는 해당 모듈에서 엑셀을 읽을때xlsx.readFile('path')이렇게 파라미터에 경로가 들어가야 하더라구요!그런데 memoryStorage 를 사용할때에는 경로를 어떻게 지정해줘야 하는걸까요?? ㅠ파일 업로드를 한 뒤 req.file로 찍어보면{ fieldname: 'excel', originalname: 'test.xlsx', encoding: '7bit', mimetype: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', buffer: <Buffer 50 4b 03 .....>, size: 9928 }이렇게 나오긴 하는데 해당 파일을 읽기 위해서 경로 설정을 어떻게 해줘야 하는지 모르겠습니다 ㅠ (걍 diskStorage로 저장해서 파일을 읽으니까 잘 되긴 했습니다!)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
10053,10054 소켓 에러
안녕하세요. Session #3 강의 수강 중, 테스트를 시도했는데 아래와 같은 에러가 발생했습니다.디버그로 실행하여 한 줄 한 줄 실행하면 잘 실행되는데 왜 Ctrl + F5로 실행하면 이럴까요 ㅠㅠ<DummyClient><ServerMain><Listener><Session><Session>