興亜は、Node.jsのを使用してインフラプロジェクトをビルドします

興亜Expressは、オリジナルキャストの超軽量サーバーフレームワークによって構築されています

エクスプレスと比較して、より自由度の高いに加えて、このようにコールバック地獄を避け、より重要なのは、自分のミドルウェアの外ES6 +非同期の使用を導入することができます。

しかし、また、コードのアップグレードので、Koa2ようv7.60以上のNode.js環境が必要です

まず、プロジェクトを作成します

  1.手動でプロジェクトディレクトリを作成し、すぐにファイルpackage.jsonを生成

    $ NPMのinit -y

  興亜は//現在のバージョン2.4.1をインストール

    $ NPM KOA -sをインストール

  そして、app.jsを作成します

CONST興亜は=( 'KOA'を必要とします)。
constのアプリ = 新しい興亜();
 
app.use(非同期CTX => {
 ctx.body = 'こんにちはこんにちは' ;
});
 
app.listen( 3000)。

  ブラウザでhttpを使用すると、プロジェクトを開始することができますapp.jsノードでcmdを入力し、入力:// localhostを:3000 /ビューのパフォーマンス

  

  それとも、コードを変更し、package.json:

  

  プロジェクトを実行することができ、NPM開始が同じで、コマンドを入力し、KOAのような最も基本的なアプリケーションの一つ!

   2.足場KOA-generato生成プロジェクトの使用

    cmdを開き、次のコマンドを入力します。

     $のNPMは、KOA-ジェネレータをインストール-g

     --ejs背後$ Koa2デモ-eは、テンプレートEJSを使用することです

   デモファイルにcdコマンドNPMはインストール入り

   プロジェクトNPM開始を実行します

第二に、プロジェクト構造

  生成されたプロジェクトの建設足場の使用を見てください:

  

  コンフィギュレーションの内容がapp.js.を導入し、それを通してプロジェクトへの入り口を見つけるために、WWW、内部ビン

  node_moudelは、ソース・モジュール機能のすべてである、フォルダモジュールがロードされて生成されます。

  パブリックパブリックフォルダには、いくつかのスタイル、ページのjsロジック絵を入れました。

  分散要求のためのルータのルーティング機能。

  ビューファイルとしてビューは、ヒスイはテキスト形式で、その内容はまた、我々はHTMLで最も精通していることかもしれません。

  app.jsと設定ファイルはpackage.jsonです

第三に、ルーティングを設定

  プロジェクトを手動で作成するときは、ルーティングを設定する必要があります。

CONST興亜は=( 'KOA'を必要とします)。
constのアプリ = 新しい興亜();
 
app.use(CTX非同期 => {興亜にコンテキストオブジェクトを提供されるCTX、//、要求と応答のパッケージ
 ctx.body = 'こんにちはこんにちは' ;
});
 
app.listen( 3000)。

  Contextオブジェクトを作成するすべてのHTTP要求は、我々はContext.request.pathを介してユーザによって要求されたパスを取得し、その後Context.response.bodyを介してユーザにコンテンツを送信することができます

  あなたはhtmlファイル(またはモジュールファイル)に戻したい場合は興亜デフォルトの戻り値の型は、Context.response.type修正する必要があり、text / plainであります

  さらに、Context.responseは、例えばContext.response.typeがContext.typeと略記するため、省略することができ、Context.response.bodyはContext.typeと略します

  1.あなたはそれが非常に面倒だったので、ルータをKOA、次のように見ていない場合:

    ディレクトリ内のビューファイルを作成し、新しいのindex.htmlファイルビューは、ファイルへの書き込み

   

 

  次のコードapp.jsを追加します。

CONST興亜は=( 'KOA'を必要とします)。
CONSTのfs =は( 'FS'を必要とします)。
constのアプリ = 新しい興亜();
 
app.use(非同期(CTX、次) => {
  場合(ctx.request.path === '/' ){
 ctx.type = 'text / htmlの' ;
 ctx.body = fs.createReadStream( './ビュー/ index.htmlを' );
 } {
 )(次待ちます。
 }
});
 
app.listen( 3000)。

  运行项目,node app.js.  在浏览器输入:http://localhost:3000,就可以显示出index.html页面了,如果网址输入错误的话,页面就会显示 no found

   2.引入路由中间件koa-router

    安装koa-router,   $ npm install koa-router

    2.1.在根目录下创建一个routes目录,存放路由文件,新建index.js文件   
// routes/index

const fs = require('fs');
const router = require('koa-router')() // 引入自调用
 
router.get('/', async (ctx, next) => {
 ctx.type = 'text/html';
 ctx.body = fs.createReadStream('./views/index.html');
});
 
module.exports = router

    修改app.js文件:

// app.js
 
const Koa = require('koa');
const app = new Koa();
 
const index = require('./routes/index')
app.use(index.routes(), index.allowedMethods())
 
app.listen(3000);

    运行项目,node app.js

四、静态资源加载

  在实际项目中,需要加载很多静态文件,如css、js文件,但是你没有使用插件,静态资源是无法显示的,举个例子:

  在根目录下新建public文件,在public文件下新建css文件,css文件下新建index.css文件

   

index.css

h1{
    color: red;
}

  在index.html文件中引入index.css文件,再运行项目,是没有效果的:

  

   使用koa-static -S加载静态资源  $ npm install koa-static -S

  在app.js中新增如下代码:  

const static = require('koa-static');
// 将 public 目录设置为静态资源目录
const main = static(__dirname + '/public');
app.use(main);

  然后在index.html相对引入就可以了,运行就可以看到红色的字体了。

<link rel="stylesheet" href="/css/index.css">

 五、模板引擎

  上面加载html文件是使用fs模块的,下面使用koa-views中间件来加载html文件

  安装koa-views $ npm install koa-views -S

  在app.js中将views目录设置为模板目录:

const views = require('koa-views')
app.use(views(__dirname + '/views')); // html文件、ejs文件、pug文件等......

在路由文件中,使用render方法:

const router = require('koa-router')()
 
router.get('/', async (ctx, next) => {
    await ctx.render('index');
});
 
module.exports = router

  运行项目就可以啦,记录下每天学习内容...

 

おすすめ

転載: www.cnblogs.com/0314dxj/p/11359428.html