Node 단순화
69495 단어 node
1-1Node 개요
데스크톱 응용 프로그램 개발
서버 응용 프로그램 개발 = > (1) 마이크로 사이트, Node 서버는 요청, 응답, 데이터베이스와 상호작용, 각종 업무 논리를 완성해야 한다.(2) node 비동기 모드는 대량으로 요청할 수 있습니다.node 서버는 업무 논리와 관련된 어떤 일도 하지 않습니다.대부분은 간단한 전송 요청일 뿐, 추가 기능이 있을 수 있습니다 [간단한 정보 기록, 정적 자원 위탁 관리. 캐시].
1-02 글로벌 객체
setTimeout/setInteval/setimmediate/console/_dirname(현재 모듈이 있는 디렉터리 가져오기)/_filename/Buffer(유형화 그룹, Ulnt8Array에서 상속)/process(cwd)/
1-03NODE 모듈식 세부 사항
① 모듈 찾기: (1) 절도 경로 [어떤 경로든 결국 절대 경로로 유도됩니다]require("D:\\a.js")
(2) 상대 경로 (3) 접두사 이름: 접두사 이름을 제공하지 않으면 파일 이름이 자동으로 완성됩니다 (4) 파일 이름: 이 디렉터리를 제공하고, 파일 이름을 제공하지 않으면 이 디렉터리의 index를 자동으로 찾습니다.js; package.json의main 필드: 패키지의 기본 입구, 기본값 index를 표시합니다.js
②mudule은 현재 모듈의 정보를 기록합니다: 누가 인용했고 어떤 하위 모듈이 인용되었는지.③ resolve: 절대 경로를 얻는다 ④ this == exports == module.exports//true (this 시작은 exports를 가리킨다)
1-04 Node의 ES 모듈식
모듈은commonjs나es
1-05 기본 내장 모듈
①OS os.EOL ->/r/n
os.arch() -> (x32/x64)
os.cpus().length -> (4)
os.freemem() ->
os.homedir() ->
os.hostname() ->
os.tmpdir() ->
②path const path = require("path")
const basename = path.basename("dd/ss/a.html")
console.log(basename) ->a.html
const basename = path.basename("dd/ss/a.html",'.html')
console.log(basename) ->a
console.log(path.sep) -> (\)
console.log(process.env.PATH.split(path.delimiter)) ->
const dir = path.dirname('ab/s/d.js');
console.log(dir) ->ab/s
const path = require("path")
const ext = path.extname('ab/s/d.js');
console.log(ext) -> (.js)
const path = require("path")
const fullPath = path.join('a','b','c','d.js');
console.log(fullPath); ->a\b\c\d.js
const path = require("path")
const rel = path.relative('/data/aaa','/data/bbb');
console.log(rel); -> ..\bbb
const URL = require('url')
const url = new URL.URL("")
console.log(url)
③ util 키트const Util = require('util')
async function delay(duration = 1000){
return new Promise(resolve => {
setTimeout(() => {
resolve(duration)
}, duration);
});
}
const delayback = Util.callbackify(delay)
delayback(500,(err,d) => {
console.log(d) // ->500
})
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
const delay = Util.promisify(delayCallBack);
delay(500).then(d => console.log(d))
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
// const delay = Util.promisify(delayCallBack);
// delay(500).then(d => console.log(d))
const delay = Util.promisify(delayCallBack);
(async () => {
const r = await delay(500);
console.log(r)
})();
//
const util = require('util')
const obj1 = {
a:1,
b:{
c:3
}
};
const obj2 = {
a:1,
b:{
c:3
}
}
console.log(util.isDeepStrictEqual(obj1,obj2)) //->true
1-6 파일 IO
① fs 모듈
readFile const fs = require('fs')
const path = require('path')
//
const filename = path.resolve(__dirname,'./myFiles/1.txt')
fs.readFile(filename,(err,content)=>{
console.log(content.toString('utf-8'))
})
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
const content = await fs.promises.readFile(filename,'utf-8');
console.log(content)
}
test();
writeFile const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abc','utf-8');
console.log(' ')
}
test();
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abcd',{
flag:"a"//
});
console.log(' ')
}
test();
// copy
const fs = require('fs')
const path = require('path');
async function test(){
const fromFilename = path.resolve(__dirname,'./myFiles/1.jpg');
const buffer = await fs.promises.readFile(fromFilename);
const toFilename = path.resolve(__dirname,'./myFiles/1.copy.jpg');
await fs.promises.writeFile(toFilename,buffer);
console.log('copy success')
}
test();
stat: 파일이나 디렉터리 정보 가져오기const fs = require('fs')
const path = require('path');
const filename = path.resolve(__dirname,'./myFiles/1.jpg')
async function test(){
const stat = await fs.promises.stat(filename)
console.log(stat)
console.log(' ',stat.isDirectory());
console.log(' ',stat.isFile());
}
test();
하위 파일 정보 가져오기
const fs = require('fs')
const path = require('path');
const dirname = path.resolve(__dirname,'./myFiles/')
async function test(){
const pathes = await fs.promises.readdir(dirname);
console.log(pathes)
}
test();
1-07 파일 스트림 읽기 가능 스트림
읽을 수 있는 흐름, 쓸 수 있는 흐름, 이중 작업 흐름.읽을 수 있는 파일을 만들려면 다음과 같이 하십시오.fs.createReadStream(path[,options])
// :encoding,start.end,highWaterMark
반환: Readable 하위 클래스 ReadStream
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const rs = fs.createReadStream(filename,{
encoding:"utf-8",
highWaterMark:1,
autoClose:true,// ( )
})
rs.on("open",()=>{
console.log('dakaile')
})
rs.on("error",()=>{
console.log('error')
})
rs.on("close",()=>{
console.log('close')
})
rs.on("data",chunk=>{
console.log(' ',chunk)
rs.pause();
})
rs.on("pause",()=>{
console.log('pause')
setTimeout(() => {
rs.resume();
},1000)
})
rs.on("end",()=>{
console.log('end')
})
rs.pause()//
rs.resume()//
1-07-2 파일 흐름 - 쓰기 가능 흐름 fs.createWriteStream(path[,options])
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const ws = fs.createWriteStream(filename,{
// flags:"",
encoding:"utf-8",
// start:"",// ,
highWaterMark:2,//
});
const flag = ws.write("a");
console.log(flag)
//
// true: , , 。
// false: , 。
ws.on("drain",()=>{
console.log(" ")
write();
})
ws.end();
//copy txt 하나const fs = require("fs");
const path = require("path")
// const filename = path.resolve(__dirname,'./1.txt');
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const content = await fs.promises.readFile(form)
await fs.promises.writeFile(to,content);
console.log(' ')
}
method1();
//최적화 후 메모리 사용량이 줄어들었습니다.async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
rs.on("data",chunk => {
//
const flag = ws.write(chunk);
if(!flag){
//
rs.pause();//
}
});
ws.on('drain',()=>{
//
rs.resume();
});
rs.on('close',()=>{
//
ws.end();
})
}
//pipe() async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
//
//
rs.pipe(ws)
rs.on("close",()=>{
})
}
method1();
1-08 net 모듈
1-09http 모듈 const http = require("http");
//
const server = http.createServer((req,res) => {
console.log(" ")
console.log(" ",req.url);
console.log(" ",req.urlobj);
console.log(" ",req.headers)
let body = ''
req.on('data',chunk => {
body + chunk.toString('ytf-8')
});
req.on('end',chunk=>{
console.log(" ",body)
});
res.setHeader('a','1')
res.write(' ');
res.end()
})
server.listen(9527);
server.on('listening',()=>{
console.log("server listen 9527")
})
// const request = http.request("http://duyi.ke.qq.com/",{
// method:"GET"
// },
// resp => {
// console.log(" ",resp.statusCode);
// console.log(" ",resp.headers);
// resp.on('data',chunk => {
// console.log(chunk)
// })
// }
// );
// request.end();//
//
// http://localhost:9527//index.html ->public/index.html
//http://localhost:9527/css/index.css -> public/css/index.css
const http = require("http")
const URL = require("url")
const path = require("path");
const fs = require("fs")
async function getStat(filename){
try{
return await fs.promises.stat(filename);
}catch{
return null
}
}
//
async function getFileInfo(url){
const urlObj = URL.parse(url);
console.log(urlObj.pathname);
let filename;//
filename = path.resolve(__dirname,"public",urlObj.pathname.substr(1))
const stat = await getStat(filename)
console.log(stat)
}
function handler(req,res){
const info = getFileInfo(REQ.url)
res.write('hello')
res.end();
}
const server = http.createServer(handler);
server.on("listening",()=>{
console.log("server listen 6000")
});
server.listen(6000);
1-10https 모듈
1-12Node 라이프 사이클
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
setTimeout/setInteval/setimmediate/console/_dirname(현재 모듈이 있는 디렉터리 가져오기)/_filename/Buffer(유형화 그룹, Ulnt8Array에서 상속)/process(cwd)/
1-03NODE 모듈식 세부 사항
① 모듈 찾기: (1) 절도 경로 [어떤 경로든 결국 절대 경로로 유도됩니다]require("D:\\a.js")
(2) 상대 경로 (3) 접두사 이름: 접두사 이름을 제공하지 않으면 파일 이름이 자동으로 완성됩니다 (4) 파일 이름: 이 디렉터리를 제공하고, 파일 이름을 제공하지 않으면 이 디렉터리의 index를 자동으로 찾습니다.js; package.json의main 필드: 패키지의 기본 입구, 기본값 index를 표시합니다.js
②mudule은 현재 모듈의 정보를 기록합니다: 누가 인용했고 어떤 하위 모듈이 인용되었는지.③ resolve: 절대 경로를 얻는다 ④ this == exports == module.exports//true (this 시작은 exports를 가리킨다)
1-04 Node의 ES 모듈식
모듈은commonjs나es
1-05 기본 내장 모듈
①OS os.EOL ->/r/n
os.arch() -> (x32/x64)
os.cpus().length -> (4)
os.freemem() ->
os.homedir() ->
os.hostname() ->
os.tmpdir() ->
②path const path = require("path")
const basename = path.basename("dd/ss/a.html")
console.log(basename) ->a.html
const basename = path.basename("dd/ss/a.html",'.html')
console.log(basename) ->a
console.log(path.sep) -> (\)
console.log(process.env.PATH.split(path.delimiter)) ->
const dir = path.dirname('ab/s/d.js');
console.log(dir) ->ab/s
const path = require("path")
const ext = path.extname('ab/s/d.js');
console.log(ext) -> (.js)
const path = require("path")
const fullPath = path.join('a','b','c','d.js');
console.log(fullPath); ->a\b\c\d.js
const path = require("path")
const rel = path.relative('/data/aaa','/data/bbb');
console.log(rel); -> ..\bbb
const URL = require('url')
const url = new URL.URL("")
console.log(url)
③ util 키트const Util = require('util')
async function delay(duration = 1000){
return new Promise(resolve => {
setTimeout(() => {
resolve(duration)
}, duration);
});
}
const delayback = Util.callbackify(delay)
delayback(500,(err,d) => {
console.log(d) // ->500
})
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
const delay = Util.promisify(delayCallBack);
delay(500).then(d => console.log(d))
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
// const delay = Util.promisify(delayCallBack);
// delay(500).then(d => console.log(d))
const delay = Util.promisify(delayCallBack);
(async () => {
const r = await delay(500);
console.log(r)
})();
//
const util = require('util')
const obj1 = {
a:1,
b:{
c:3
}
};
const obj2 = {
a:1,
b:{
c:3
}
}
console.log(util.isDeepStrictEqual(obj1,obj2)) //->true
1-6 파일 IO
① fs 모듈
readFile const fs = require('fs')
const path = require('path')
//
const filename = path.resolve(__dirname,'./myFiles/1.txt')
fs.readFile(filename,(err,content)=>{
console.log(content.toString('utf-8'))
})
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
const content = await fs.promises.readFile(filename,'utf-8');
console.log(content)
}
test();
writeFile const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abc','utf-8');
console.log(' ')
}
test();
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abcd',{
flag:"a"//
});
console.log(' ')
}
test();
// copy
const fs = require('fs')
const path = require('path');
async function test(){
const fromFilename = path.resolve(__dirname,'./myFiles/1.jpg');
const buffer = await fs.promises.readFile(fromFilename);
const toFilename = path.resolve(__dirname,'./myFiles/1.copy.jpg');
await fs.promises.writeFile(toFilename,buffer);
console.log('copy success')
}
test();
stat: 파일이나 디렉터리 정보 가져오기const fs = require('fs')
const path = require('path');
const filename = path.resolve(__dirname,'./myFiles/1.jpg')
async function test(){
const stat = await fs.promises.stat(filename)
console.log(stat)
console.log(' ',stat.isDirectory());
console.log(' ',stat.isFile());
}
test();
하위 파일 정보 가져오기
const fs = require('fs')
const path = require('path');
const dirname = path.resolve(__dirname,'./myFiles/')
async function test(){
const pathes = await fs.promises.readdir(dirname);
console.log(pathes)
}
test();
1-07 파일 스트림 읽기 가능 스트림
읽을 수 있는 흐름, 쓸 수 있는 흐름, 이중 작업 흐름.읽을 수 있는 파일을 만들려면 다음과 같이 하십시오.fs.createReadStream(path[,options])
// :encoding,start.end,highWaterMark
반환: Readable 하위 클래스 ReadStream
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const rs = fs.createReadStream(filename,{
encoding:"utf-8",
highWaterMark:1,
autoClose:true,// ( )
})
rs.on("open",()=>{
console.log('dakaile')
})
rs.on("error",()=>{
console.log('error')
})
rs.on("close",()=>{
console.log('close')
})
rs.on("data",chunk=>{
console.log(' ',chunk)
rs.pause();
})
rs.on("pause",()=>{
console.log('pause')
setTimeout(() => {
rs.resume();
},1000)
})
rs.on("end",()=>{
console.log('end')
})
rs.pause()//
rs.resume()//
1-07-2 파일 흐름 - 쓰기 가능 흐름 fs.createWriteStream(path[,options])
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const ws = fs.createWriteStream(filename,{
// flags:"",
encoding:"utf-8",
// start:"",// ,
highWaterMark:2,//
});
const flag = ws.write("a");
console.log(flag)
//
// true: , , 。
// false: , 。
ws.on("drain",()=>{
console.log(" ")
write();
})
ws.end();
//copy txt 하나const fs = require("fs");
const path = require("path")
// const filename = path.resolve(__dirname,'./1.txt');
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const content = await fs.promises.readFile(form)
await fs.promises.writeFile(to,content);
console.log(' ')
}
method1();
//최적화 후 메모리 사용량이 줄어들었습니다.async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
rs.on("data",chunk => {
//
const flag = ws.write(chunk);
if(!flag){
//
rs.pause();//
}
});
ws.on('drain',()=>{
//
rs.resume();
});
rs.on('close',()=>{
//
ws.end();
})
}
//pipe() async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
//
//
rs.pipe(ws)
rs.on("close",()=>{
})
}
method1();
1-08 net 모듈
1-09http 모듈 const http = require("http");
//
const server = http.createServer((req,res) => {
console.log(" ")
console.log(" ",req.url);
console.log(" ",req.urlobj);
console.log(" ",req.headers)
let body = ''
req.on('data',chunk => {
body + chunk.toString('ytf-8')
});
req.on('end',chunk=>{
console.log(" ",body)
});
res.setHeader('a','1')
res.write(' ');
res.end()
})
server.listen(9527);
server.on('listening',()=>{
console.log("server listen 9527")
})
// const request = http.request("http://duyi.ke.qq.com/",{
// method:"GET"
// },
// resp => {
// console.log(" ",resp.statusCode);
// console.log(" ",resp.headers);
// resp.on('data',chunk => {
// console.log(chunk)
// })
// }
// );
// request.end();//
//
// http://localhost:9527//index.html ->public/index.html
//http://localhost:9527/css/index.css -> public/css/index.css
const http = require("http")
const URL = require("url")
const path = require("path");
const fs = require("fs")
async function getStat(filename){
try{
return await fs.promises.stat(filename);
}catch{
return null
}
}
//
async function getFileInfo(url){
const urlObj = URL.parse(url);
console.log(urlObj.pathname);
let filename;//
filename = path.resolve(__dirname,"public",urlObj.pathname.substr(1))
const stat = await getStat(filename)
console.log(stat)
}
function handler(req,res){
const info = getFileInfo(REQ.url)
res.write('hello')
res.end();
}
const server = http.createServer(handler);
server.on("listening",()=>{
console.log("server listen 6000")
});
server.listen(6000);
1-10https 모듈
1-12Node 라이프 사이클
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
require("D:\\a.js")
모듈은commonjs나es
1-05 기본 내장 모듈
①OS os.EOL ->/r/n
os.arch() -> (x32/x64)
os.cpus().length -> (4)
os.freemem() ->
os.homedir() ->
os.hostname() ->
os.tmpdir() ->
②path const path = require("path")
const basename = path.basename("dd/ss/a.html")
console.log(basename) ->a.html
const basename = path.basename("dd/ss/a.html",'.html')
console.log(basename) ->a
console.log(path.sep) -> (\)
console.log(process.env.PATH.split(path.delimiter)) ->
const dir = path.dirname('ab/s/d.js');
console.log(dir) ->ab/s
const path = require("path")
const ext = path.extname('ab/s/d.js');
console.log(ext) -> (.js)
const path = require("path")
const fullPath = path.join('a','b','c','d.js');
console.log(fullPath); ->a\b\c\d.js
const path = require("path")
const rel = path.relative('/data/aaa','/data/bbb');
console.log(rel); -> ..\bbb
const URL = require('url')
const url = new URL.URL("")
console.log(url)
③ util 키트const Util = require('util')
async function delay(duration = 1000){
return new Promise(resolve => {
setTimeout(() => {
resolve(duration)
}, duration);
});
}
const delayback = Util.callbackify(delay)
delayback(500,(err,d) => {
console.log(d) // ->500
})
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
const delay = Util.promisify(delayCallBack);
delay(500).then(d => console.log(d))
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
// const delay = Util.promisify(delayCallBack);
// delay(500).then(d => console.log(d))
const delay = Util.promisify(delayCallBack);
(async () => {
const r = await delay(500);
console.log(r)
})();
//
const util = require('util')
const obj1 = {
a:1,
b:{
c:3
}
};
const obj2 = {
a:1,
b:{
c:3
}
}
console.log(util.isDeepStrictEqual(obj1,obj2)) //->true
1-6 파일 IO
① fs 모듈
readFile const fs = require('fs')
const path = require('path')
//
const filename = path.resolve(__dirname,'./myFiles/1.txt')
fs.readFile(filename,(err,content)=>{
console.log(content.toString('utf-8'))
})
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
const content = await fs.promises.readFile(filename,'utf-8');
console.log(content)
}
test();
writeFile const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abc','utf-8');
console.log(' ')
}
test();
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abcd',{
flag:"a"//
});
console.log(' ')
}
test();
// copy
const fs = require('fs')
const path = require('path');
async function test(){
const fromFilename = path.resolve(__dirname,'./myFiles/1.jpg');
const buffer = await fs.promises.readFile(fromFilename);
const toFilename = path.resolve(__dirname,'./myFiles/1.copy.jpg');
await fs.promises.writeFile(toFilename,buffer);
console.log('copy success')
}
test();
stat: 파일이나 디렉터리 정보 가져오기const fs = require('fs')
const path = require('path');
const filename = path.resolve(__dirname,'./myFiles/1.jpg')
async function test(){
const stat = await fs.promises.stat(filename)
console.log(stat)
console.log(' ',stat.isDirectory());
console.log(' ',stat.isFile());
}
test();
하위 파일 정보 가져오기
const fs = require('fs')
const path = require('path');
const dirname = path.resolve(__dirname,'./myFiles/')
async function test(){
const pathes = await fs.promises.readdir(dirname);
console.log(pathes)
}
test();
1-07 파일 스트림 읽기 가능 스트림
읽을 수 있는 흐름, 쓸 수 있는 흐름, 이중 작업 흐름.읽을 수 있는 파일을 만들려면 다음과 같이 하십시오.fs.createReadStream(path[,options])
// :encoding,start.end,highWaterMark
반환: Readable 하위 클래스 ReadStream
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const rs = fs.createReadStream(filename,{
encoding:"utf-8",
highWaterMark:1,
autoClose:true,// ( )
})
rs.on("open",()=>{
console.log('dakaile')
})
rs.on("error",()=>{
console.log('error')
})
rs.on("close",()=>{
console.log('close')
})
rs.on("data",chunk=>{
console.log(' ',chunk)
rs.pause();
})
rs.on("pause",()=>{
console.log('pause')
setTimeout(() => {
rs.resume();
},1000)
})
rs.on("end",()=>{
console.log('end')
})
rs.pause()//
rs.resume()//
1-07-2 파일 흐름 - 쓰기 가능 흐름 fs.createWriteStream(path[,options])
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const ws = fs.createWriteStream(filename,{
// flags:"",
encoding:"utf-8",
// start:"",// ,
highWaterMark:2,//
});
const flag = ws.write("a");
console.log(flag)
//
// true: , , 。
// false: , 。
ws.on("drain",()=>{
console.log(" ")
write();
})
ws.end();
//copy txt 하나const fs = require("fs");
const path = require("path")
// const filename = path.resolve(__dirname,'./1.txt');
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const content = await fs.promises.readFile(form)
await fs.promises.writeFile(to,content);
console.log(' ')
}
method1();
//최적화 후 메모리 사용량이 줄어들었습니다.async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
rs.on("data",chunk => {
//
const flag = ws.write(chunk);
if(!flag){
//
rs.pause();//
}
});
ws.on('drain',()=>{
//
rs.resume();
});
rs.on('close',()=>{
//
ws.end();
})
}
//pipe() async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
//
//
rs.pipe(ws)
rs.on("close",()=>{
})
}
method1();
1-08 net 모듈
1-09http 모듈 const http = require("http");
//
const server = http.createServer((req,res) => {
console.log(" ")
console.log(" ",req.url);
console.log(" ",req.urlobj);
console.log(" ",req.headers)
let body = ''
req.on('data',chunk => {
body + chunk.toString('ytf-8')
});
req.on('end',chunk=>{
console.log(" ",body)
});
res.setHeader('a','1')
res.write(' ');
res.end()
})
server.listen(9527);
server.on('listening',()=>{
console.log("server listen 9527")
})
// const request = http.request("http://duyi.ke.qq.com/",{
// method:"GET"
// },
// resp => {
// console.log(" ",resp.statusCode);
// console.log(" ",resp.headers);
// resp.on('data',chunk => {
// console.log(chunk)
// })
// }
// );
// request.end();//
//
// http://localhost:9527//index.html ->public/index.html
//http://localhost:9527/css/index.css -> public/css/index.css
const http = require("http")
const URL = require("url")
const path = require("path");
const fs = require("fs")
async function getStat(filename){
try{
return await fs.promises.stat(filename);
}catch{
return null
}
}
//
async function getFileInfo(url){
const urlObj = URL.parse(url);
console.log(urlObj.pathname);
let filename;//
filename = path.resolve(__dirname,"public",urlObj.pathname.substr(1))
const stat = await getStat(filename)
console.log(stat)
}
function handler(req,res){
const info = getFileInfo(REQ.url)
res.write('hello')
res.end();
}
const server = http.createServer(handler);
server.on("listening",()=>{
console.log("server listen 6000")
});
server.listen(6000);
1-10https 모듈
1-12Node 라이프 사이클
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
os.EOL ->/r/n
os.arch() -> (x32/x64)
os.cpus().length -> (4)
os.freemem() ->
os.homedir() ->
os.hostname() ->
os.tmpdir() ->
const path = require("path")
const basename = path.basename("dd/ss/a.html")
console.log(basename) ->a.html
const basename = path.basename("dd/ss/a.html",'.html')
console.log(basename) ->a
console.log(path.sep) -> (\)
console.log(process.env.PATH.split(path.delimiter)) ->
const dir = path.dirname('ab/s/d.js');
console.log(dir) ->ab/s
const path = require("path")
const ext = path.extname('ab/s/d.js');
console.log(ext) -> (.js)
const path = require("path")
const fullPath = path.join('a','b','c','d.js');
console.log(fullPath); ->a\b\c\d.js
const path = require("path")
const rel = path.relative('/data/aaa','/data/bbb');
console.log(rel); -> ..\bbb
const URL = require('url')
const url = new URL.URL("")
console.log(url)
const Util = require('util')
async function delay(duration = 1000){
return new Promise(resolve => {
setTimeout(() => {
resolve(duration)
}, duration);
});
}
const delayback = Util.callbackify(delay)
delayback(500,(err,d) => {
console.log(d) // ->500
})
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
const delay = Util.promisify(delayCallBack);
delay(500).then(d => console.log(d))
//
function delayCallBack(duration,callback){
setTimeout(() => {
callback(null,duration)
},duration)
}
// const delay = Util.promisify(delayCallBack);
// delay(500).then(d => console.log(d))
const delay = Util.promisify(delayCallBack);
(async () => {
const r = await delay(500);
console.log(r)
})();
//
const util = require('util')
const obj1 = {
a:1,
b:{
c:3
}
};
const obj2 = {
a:1,
b:{
c:3
}
}
console.log(util.isDeepStrictEqual(obj1,obj2)) //->true
① fs 모듈
readFile
const fs = require('fs')
const path = require('path')
//
const filename = path.resolve(__dirname,'./myFiles/1.txt')
fs.readFile(filename,(err,content)=>{
console.log(content.toString('utf-8'))
})
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
const content = await fs.promises.readFile(filename,'utf-8');
console.log(content)
}
test();
writeFile
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abc','utf-8');
console.log(' ')
}
test();
const fs = require('fs')
const path = require('path')
const filename = path.resolve(__dirname,'./myFiles/1.txt')
async function test(){
await fs.promises.writeFile(filename,'abcd',{
flag:"a"//
});
console.log(' ')
}
test();
// copy
const fs = require('fs')
const path = require('path');
async function test(){
const fromFilename = path.resolve(__dirname,'./myFiles/1.jpg');
const buffer = await fs.promises.readFile(fromFilename);
const toFilename = path.resolve(__dirname,'./myFiles/1.copy.jpg');
await fs.promises.writeFile(toFilename,buffer);
console.log('copy success')
}
test();
stat: 파일이나 디렉터리 정보 가져오기
const fs = require('fs')
const path = require('path');
const filename = path.resolve(__dirname,'./myFiles/1.jpg')
async function test(){
const stat = await fs.promises.stat(filename)
console.log(stat)
console.log(' ',stat.isDirectory());
console.log(' ',stat.isFile());
}
test();
하위 파일 정보 가져오기
const fs = require('fs')
const path = require('path');
const dirname = path.resolve(__dirname,'./myFiles/')
async function test(){
const pathes = await fs.promises.readdir(dirname);
console.log(pathes)
}
test();
1-07 파일 스트림 읽기 가능 스트림
읽을 수 있는 흐름, 쓸 수 있는 흐름, 이중 작업 흐름.읽을 수 있는 파일을 만들려면 다음과 같이 하십시오.fs.createReadStream(path[,options])
// :encoding,start.end,highWaterMark
반환: Readable 하위 클래스 ReadStream
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const rs = fs.createReadStream(filename,{
encoding:"utf-8",
highWaterMark:1,
autoClose:true,// ( )
})
rs.on("open",()=>{
console.log('dakaile')
})
rs.on("error",()=>{
console.log('error')
})
rs.on("close",()=>{
console.log('close')
})
rs.on("data",chunk=>{
console.log(' ',chunk)
rs.pause();
})
rs.on("pause",()=>{
console.log('pause')
setTimeout(() => {
rs.resume();
},1000)
})
rs.on("end",()=>{
console.log('end')
})
rs.pause()//
rs.resume()//
1-07-2 파일 흐름 - 쓰기 가능 흐름 fs.createWriteStream(path[,options])
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const ws = fs.createWriteStream(filename,{
// flags:"",
encoding:"utf-8",
// start:"",// ,
highWaterMark:2,//
});
const flag = ws.write("a");
console.log(flag)
//
// true: , , 。
// false: , 。
ws.on("drain",()=>{
console.log(" ")
write();
})
ws.end();
//copy txt 하나const fs = require("fs");
const path = require("path")
// const filename = path.resolve(__dirname,'./1.txt');
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const content = await fs.promises.readFile(form)
await fs.promises.writeFile(to,content);
console.log(' ')
}
method1();
//최적화 후 메모리 사용량이 줄어들었습니다.async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
rs.on("data",chunk => {
//
const flag = ws.write(chunk);
if(!flag){
//
rs.pause();//
}
});
ws.on('drain',()=>{
//
rs.resume();
});
rs.on('close',()=>{
//
ws.end();
})
}
//pipe() async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
//
//
rs.pipe(ws)
rs.on("close",()=>{
})
}
method1();
1-08 net 모듈
1-09http 모듈 const http = require("http");
//
const server = http.createServer((req,res) => {
console.log(" ")
console.log(" ",req.url);
console.log(" ",req.urlobj);
console.log(" ",req.headers)
let body = ''
req.on('data',chunk => {
body + chunk.toString('ytf-8')
});
req.on('end',chunk=>{
console.log(" ",body)
});
res.setHeader('a','1')
res.write(' ');
res.end()
})
server.listen(9527);
server.on('listening',()=>{
console.log("server listen 9527")
})
// const request = http.request("http://duyi.ke.qq.com/",{
// method:"GET"
// },
// resp => {
// console.log(" ",resp.statusCode);
// console.log(" ",resp.headers);
// resp.on('data',chunk => {
// console.log(chunk)
// })
// }
// );
// request.end();//
//
// http://localhost:9527//index.html ->public/index.html
//http://localhost:9527/css/index.css -> public/css/index.css
const http = require("http")
const URL = require("url")
const path = require("path");
const fs = require("fs")
async function getStat(filename){
try{
return await fs.promises.stat(filename);
}catch{
return null
}
}
//
async function getFileInfo(url){
const urlObj = URL.parse(url);
console.log(urlObj.pathname);
let filename;//
filename = path.resolve(__dirname,"public",urlObj.pathname.substr(1))
const stat = await getStat(filename)
console.log(stat)
}
function handler(req,res){
const info = getFileInfo(REQ.url)
res.write('hello')
res.end();
}
const server = http.createServer(handler);
server.on("listening",()=>{
console.log("server listen 6000")
});
server.listen(6000);
1-10https 모듈
1-12Node 라이프 사이클
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
fs.createReadStream(path[,options])
// :encoding,start.end,highWaterMark
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const rs = fs.createReadStream(filename,{
encoding:"utf-8",
highWaterMark:1,
autoClose:true,// ( )
})
rs.on("open",()=>{
console.log('dakaile')
})
rs.on("error",()=>{
console.log('error')
})
rs.on("close",()=>{
console.log('close')
})
rs.on("data",chunk=>{
console.log(' ',chunk)
rs.pause();
})
rs.on("pause",()=>{
console.log('pause')
setTimeout(() => {
rs.resume();
},1000)
})
rs.on("end",()=>{
console.log('end')
})
rs.pause()//
rs.resume()//
fs.createWriteStream(path[,options])
const fs = require("fs");
const path = require("path")
const filename = path.resolve(__dirname,'./1.txt');
const ws = fs.createWriteStream(filename,{
// flags:"",
encoding:"utf-8",
// start:"",// ,
highWaterMark:2,//
});
const flag = ws.write("a");
console.log(flag)
//
// true: , , 。
// false: , 。
ws.on("drain",()=>{
console.log(" ")
write();
})
ws.end();
//copy txt 하나
const fs = require("fs");
const path = require("path")
// const filename = path.resolve(__dirname,'./1.txt');
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const content = await fs.promises.readFile(form)
await fs.promises.writeFile(to,content);
console.log(' ')
}
method1();
//최적화 후 메모리 사용량이 줄어들었습니다.
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
rs.on("data",chunk => {
//
const flag = ws.write(chunk);
if(!flag){
//
rs.pause();//
}
});
ws.on('drain',()=>{
//
rs.resume();
});
rs.on('close',()=>{
//
ws.end();
})
}
//pipe()
async function method1(){
const form = path.resolve(__dirname,'./1.txt');
const to = path.resolve(__dirname,'./abc1.txt');
const rs = fs.createReadStream(form);
const ws = fs.createWriteStream(to)
//
//
rs.pipe(ws)
rs.on("close",()=>{
})
}
method1();
1-08 net 모듈
1-09http 모듈 const http = require("http");
//
const server = http.createServer((req,res) => {
console.log(" ")
console.log(" ",req.url);
console.log(" ",req.urlobj);
console.log(" ",req.headers)
let body = ''
req.on('data',chunk => {
body + chunk.toString('ytf-8')
});
req.on('end',chunk=>{
console.log(" ",body)
});
res.setHeader('a','1')
res.write(' ');
res.end()
})
server.listen(9527);
server.on('listening',()=>{
console.log("server listen 9527")
})
// const request = http.request("http://duyi.ke.qq.com/",{
// method:"GET"
// },
// resp => {
// console.log(" ",resp.statusCode);
// console.log(" ",resp.headers);
// resp.on('data',chunk => {
// console.log(chunk)
// })
// }
// );
// request.end();//
//
// http://localhost:9527//index.html ->public/index.html
//http://localhost:9527/css/index.css -> public/css/index.css
const http = require("http")
const URL = require("url")
const path = require("path");
const fs = require("fs")
async function getStat(filename){
try{
return await fs.promises.stat(filename);
}catch{
return null
}
}
//
async function getFileInfo(url){
const urlObj = URL.parse(url);
console.log(urlObj.pathname);
let filename;//
filename = path.resolve(__dirname,"public",urlObj.pathname.substr(1))
const stat = await getStat(filename)
console.log(stat)
}
function handler(req,res){
const info = getFileInfo(REQ.url)
res.write('hello')
res.end();
}
const server = http.createServer(handler);
server.on("listening",()=>{
console.log("server listen 6000")
});
server.listen(6000);
1-10https 모듈
1-12Node 라이프 사이클
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
const http = require("http");
//
const server = http.createServer((req,res) => {
console.log(" ")
console.log(" ",req.url);
console.log(" ",req.urlobj);
console.log(" ",req.headers)
let body = ''
req.on('data',chunk => {
body + chunk.toString('ytf-8')
});
req.on('end',chunk=>{
console.log(" ",body)
});
res.setHeader('a','1')
res.write(' ');
res.end()
})
server.listen(9527);
server.on('listening',()=>{
console.log("server listen 9527")
})
// const request = http.request("http://duyi.ke.qq.com/",{
// method:"GET"
// },
// resp => {
// console.log(" ",resp.statusCode);
// console.log(" ",resp.headers);
// resp.on('data',chunk => {
// console.log(chunk)
// })
// }
// );
// request.end();//
//
// http://localhost:9527//index.html ->public/index.html
//http://localhost:9527/css/index.css -> public/css/index.css
const http = require("http")
const URL = require("url")
const path = require("path");
const fs = require("fs")
async function getStat(filename){
try{
return await fs.promises.stat(filename);
}catch{
return null
}
}
//
async function getFileInfo(url){
const urlObj = URL.parse(url);
console.log(urlObj.pathname);
let filename;//
filename = path.resolve(__dirname,"public",urlObj.pathname.substr(1))
const stat = await getStat(filename)
console.log(stat)
}
function handler(req,res){
const info = getFileInfo(REQ.url)
res.write('hello')
res.end();
}
const server = http.createServer(handler);
server.on("listening",()=>{
console.log("server listen 6000")
});
server.listen(6000);
1-10https 모듈
1-12Node 라이프 사이클
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
timers: 타이머를 저장하는 리셋 함수poll: 리셋 대기열,timers를 제외하고checks는 대부분의 리셋을 이 대기열에 넣습니다.예를 들어 파일의 내용을 읽고 사용자의 요청을 감청한다.poll 대기열 운영 방식:poll에 리셋이 있으면 순서대로 리셋을 실행합니다. 대기열을 비울 때까지.폴에 리셋이 없으면 다른 대기열에 리셋이 나타날 때까지 기다립니다. 이 단계를 끝내고 다음 단계로 넘어갑니다.다른 대기열도 리셋되지 않으면 리셋이 나타날 때까지 기다립니다.check: 검사 단계, setImmediate() 시간 순환을 사용합니다. 매번 리셋을 실행하기 전에 nextTick과promise 대기열을 비워야 합니다.
1-13EventEmitter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법
Express에서 오류를 처리하는 여러 가지 방법이 있습니다.
이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다.
또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다.
이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법Express에서 오류를 처리하는 여러 가지 방법이 있습니다. 이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다. 또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다. 이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.