ホームページ >ウェブフロントエンド >jsチュートリアル >Koa プロジェクトを構築する手順の詳細な説明
今回は、Koa プロジェクトをビルドする手順について詳しく説明します。Koa プロジェクトをビルドする際の 注意事項 は何ですか?実際のケースを見てみましょう。
この記事では、Koa プロジェクトの構築プロセスの詳細な記録を紹介し、皆さんと共有します。詳細は次のとおりです: Java の Spring MVC と MyBatis は、基本的に Java Web の標準構成になっています。対応するNode JSはKoa、Express、Mongoose、Sequelizeなどです。 Koa は、Express をある程度アップグレードしたバージョンであると言えます。多くの Node JS プロジェクトは、非リレーショナル データベース (MongoDB) を使用し始めています。 Sequelize は非リレーショナル データベース (MSSQL、MYSQL、SQLLite) をサポートします。cnpm install -g koa-generator // 这里一定要用koa2 koa2 /fooKoaの共通ミドルウェアの紹介
koa-generatorで生成されたアプリケーションにはすでに共通のミドルウェアが含まれていますが、ここではその中で使用されないものについてのみ説明します。
koa-less
app.use(require('koa-less')(dirname + '/public'))はstaticの前に使用する必要があります。そうでない場合は無効になります。 スタイルシートフォルダーに新しいstyles.lessを作成し、すべてのモジュールレスファイルをインポートします。
@import 'foo.less'; @import 'bar.less';このようにして、すべてのスタイルが style.css にコンパイルされます。テンプレート (pug) の style.css を参照するだけです。
koa-session
// 设置app keys,session会根据这个进行加密 app.keys = ['some secret hurr']; // 配置session config const CONFIG = { key: 'bougie:session', /** (string) cookie key (default is koa:sess) */ maxAge: 1000 * 60 * 60 * 24 * 7, overwrite: true, /** (boolean) can overwrite or not (default true) */ httpOnly: true, /** (boolean) httpOnly or not (default true) */ signed: true, /** (boolean) signed or not (default true) */ rolling: true, /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */ renew: false, /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/ }; // 应用中间件 app.use(session(CONFIG, app));これはルーターの前で使用する必要があります。そうでない場合は無効になります。
基本的に使用
、通常のオブジェクトとして扱うことができます// 赋值 ctx.session.statu = value // 取值 ctx.session.statu // 删除 ctx.session.statu = nullkoa-proxies
プロキシ設定用
const proxy = require('koa-proxies') app.use(proxy('/octocat', { target: 'https://api.github.com/users', changeOrigin: true, agent: new httpsProxyAgent('http://1.2.3.4:88'), rewrite: path => path.replace(/^\/octocat(\/|\/\w+)?$/, '/vagusx'), logs: true }))
ルーティング制御
開発はRestfulインターフェイスやテンプレートを含むルーティング制御に主に焦点を当てていますレンダリング
クエリパラメータ(?param=a)ctx.query.param
ルーティングパラメータ
(/:id)ctx.params.idPOSTパラメータ(JSONまたはフォーム)
ctx.request.body
リクエストレスポンス(レスポンス)
サーバーがクライアントに応答するデータ
restfulctx.body = yourDataテンプレートレンダリングデフォルトでviewsディレクトリから開始し、ファイルサフィックスは許可されません
ctx.render('layout', yourData)
ルートインターセプト
ログインしていない場合はリクエストを拒否しますこれは 404 を返します
const userAuth = (ctx, next) => { let isLogin = ctx.session.isLogin if(isLogin) return next() } router.use('/', userAuth)この操作は「/a」、「/b」などのルートに含まれており、サブルートの前に使用する必要があります。そうでない場合は無効になると思います。この記事の事例を読んで方法をマスターしてください。さらに興味深い情報については、php 中国語 Web サイトのその他の関連記事を参照してください。 推奨読書:
vuex ページの更新後にデータが消去されないようにする方法
以上がKoa プロジェクトを構築する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。