koa 중간부품 레코드
var Koa = require('koa');
var app = Koa();
app.on('error', function(err,ctx){
console.log(err);
});
app.listen(3000);
위의 코드는 오류가 발생하면 페이지에서 "Internal Server Error"(Koa 오류에 대한 기본 처리)를 인쇄합니다.이 오류는 종합 모니터링 시스템에서도 자주 볼 수 있지만, 우리는 이 로그에 근거하여 어떤 정보를 얻을 수 없을 것이다.
TypeError: Cannot read property 'split' of undefined
at Object.Home.index (d:\test\route\home.js:143:31)
at GeneratorFunctionPrototype.next (native)
at Object.dispatch (d:\test
ode_modules\koa-router\lib\router.js:97:44)
at GeneratorFunctionPrototype.next (native)
이러한 오류 정보는 어떻게 보고된 것입니까? 사실은 Koa-onerror 중간부품입니다. 오류 정보를 최적화하여 오류 정보에 따라 오류를 더욱 잘 포착할 수 있습니다.
var onerror = require('Koa-onerror');
onerror(app);
일지
app.use(require('koa-logger'));
사용법:http://www.jianshu.com/p/6b816c609669(version<2.0)
3. 데이터 분석 요청
1、koa-bodyparser
바디를 해석하는 데 사용한다. 예를 들어post를 통해 폼, json 또는 파일을 전달하면 데이터를 쉽게 얻을 수 없다.koa-bodyparser를 통해 분석한 후koa에서this.바디는 데이터를 얻을 수 있습니다.
json,form,text 형식 지원
사용법:
const bodyparser = require('koa-bodyparser');
app.use(bodyparser({
enableTypes:['json', 'form', 'text']
}))
매개변수:
app.use(async (ctx, next) => {
if (ctx.path === '/disable') ctx.disableBodyParser = true;
await next();
});
app.use(bodyparser());
app.use(bodyparser({
onerror: function (err, ctx) {
ctx.throw('body parse error', 422);
}
}));
2、koa-multer
multipart/form-data 형식 분석
const multer = require('koa-multer');
app.user(multer());
4. 경로 처리
1,koa-router①기본용법:
var router = require('koa-router')();
router.get('/', function(ctx, next){
...
});
app
.use(router.routes())
.use(router.allowedMethods());
② router.get/post/put/del/all
router
.get('/', function (ctx, next) {
ctx.body = 'Hello World!';
})
.post('/users', function (ctx, next) {
})
.put('/users/:id', function (ctx, next) {
})
.del('/users/:id', function (ctx, next) {
})
.all('/users/:id', function (ctx, next) {
});
③다중 미들웨어
router.get(
'/users/:id',
function (ctx, next) {
return User.findOne(ctx.params.id).then(function(user) {
ctx.user = user;
return next();
});
},
function (ctx) {
console.log(ctx.user);
// => { id: 17, name: "Alex" }
}
);
기타
1. koa-json의 아름다운 출력 JSON response의 Koa 중간부품은 두 가지 사용 방식이 있다. 하나는 항상 미화된 json 데이터를 되돌려주는 것이다.
const json = require('koa-json');
app.use(json());
다른 하나는 기본적으로 미화하지 않지만 주소 표시줄에서pretty 인자를 전송할 때 되돌아오는 결과는 미화되었다.
app.use(json({ pretty: false, param: 'pretty' }));
2. koa-static는 koa의 정적 파일에 맵 경로를 지정합니다.
const staticServe = require('koa-static');
app.use(staticServe(root, opts));
매개변수: ① root: 정적 파일의 루트 디렉토리 ② opts:
3. 뷰의 렌더링 템플릿 유형을 지정하는 데 koa-views 사용
app.use(views(__dirname + '/views', {
extension: 'jade',
map: {
html: 'underscore'
},
engineSource: {
foo: () => Promise.resolve('bar')
},
options: {
helpers: {
uppercase: (str) => str.toUpperCase()
},
partials: {
subTitle: './my-partial' // requires ./my-partial.hbs
}
}
}));
매개 변수: ① 루트,view 파일의 절대 경로를 표시합니다. (여기는 상대 경로를 사용할 수 없습니다.)② opt, 여기에는 네 가지 구성 항목이 포함되어 있습니다.
koa-views의 debug 모드를 엽니다: koa 서비스를 시작할 때 DEBUG=koa-views 환경 변수를 추가합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.