Node.jsの実現は.php,.jspのサーバページ技術、自動ルーティング
5021 ワード
サーバページテクノロジーの利点
従来のサーバページ技術、例えばjsp、aspx、phpの最大の利点は隔離性が非常に良く、強制的にデカップリングし、手動でルーティングを定義する面倒を省き、ファイルパスは直接ルーティングを表し、初心者にとって非常に友好的で、nodeを見る.jsのフレームワークkoa,expressなどは,ルーティングを手動で定義する必要がある.
インタフェースを追加するたびにルーティングを手動で定義する必要があり、routersを抽出する必要がある.jsはこれらのルーティングを専門に定義し、頻繁に変更し、一部の開発者は簡単にファイルに論理コードを書くことができます.node.jsはページ技術を対応するjsファイルに自動的にルーティングできるかどうか、答えは肯定的だ.
Node.jsリクエストパス自動ルーティングの実装
実装手順は次のとおりです.は、要求パス を取得する.はpathを用いる.resolveプロジェクトディレクトリに同じ名前のjsファイルがあるかどうかを検索する requireはファイルを導入し、onRequest のような呼び出しのために約束されたメソッド名を実装する必要があります.このファイルで指定するメソッド を呼び出す.
/app.js
/home.js
node app.jsが実行されたら、アクセスします.http://localhost/home
大成功!
ホット・アップデートの実装方法
今は楽しくページを書くことができて、ルートが定義を忘れる心配はありませんが、jsファイルのコードを修正した後、毎回nodeを再起動してから有効になります.伝統的なページ技術はページをリフレッシュすると最新のコードを実行することができます.これはnode requireが導入したファイルモジュールがキャッシュされるので、これを実現するにはfsを祭る必要があります.watchという大殺器は、次のように実現されています.モニタファイル変化 モジュールキャッシュ を削除する.再require入って コードは次のように簡単です.
app.js
Node.jsサーバページ開発フレームワークの推奨
本文の構想に基づいて、私はすでに比較的完備したNodeを実現した.js開発フレームワークwebcontextは、リクエストコンテキストパッケージ、静的ファイルサービス、逆エージェント、データベースアクセス、sesisonアクセス、ログ記録などのwebアプリケーションサーバの必須機能を実現し、好きならstarを求める
転送ドア:github.com/windyfancy/…
転載先:https://juejin.im/post/5ccf00eae51d453b7f0a0d44
従来のサーバページ技術、例えばjsp、aspx、phpの最大の利点は隔離性が非常に良く、強制的にデカップリングし、手動でルーティングを定義する面倒を省き、ファイルパスは直接ルーティングを表し、初心者にとって非常に友好的で、nodeを見る.jsのフレームワークkoa,expressなどは,ルーティングを手動で定義する必要がある.
const Koa = require('koa')
const router = require('koa-router')()
const app = new Koa()
router.get('/home', async (ctx, next) => {
ctx.response.body = 'Hello,Home Page'
})
インタフェースを追加するたびにルーティングを手動で定義する必要があり、routersを抽出する必要がある.jsはこれらのルーティングを専門に定義し、頻繁に変更し、一部の開発者は簡単にファイルに論理コードを書くことができます.node.jsはページ技術を対応するjsファイルに自動的にルーティングできるかどうか、答えは肯定的だ.
Node.jsリクエストパス自動ルーティングの実装
実装手順は次のとおりです.
/app.js
const http=require("http");
const Path=require("path");
const Url=require("url");
const fs=require("fs");
var server=http.createServer(function (req,res){
var relPath=Url.parse(req.url,true).pathname;
var absPath=Path.resolve(__dirname,"."+relPath+".js")
if(fs.existsSync(absPath)){
var pageObj=require(absPath);
if(pageObj.onRequest){
pageObj.onRequest(req,res)
}
}
})
server.listen(80);
/home.js
module.exports={
onRequest:function (req,res){
res.end("Hello,Home Page"
);
}
}
node app.jsが実行されたら、アクセスします.http://localhost/home
大成功!
ホット・アップデートの実装方法
今は楽しくページを書くことができて、ルートが定義を忘れる心配はありませんが、jsファイルのコードを修正した後、毎回nodeを再起動してから有効になります.伝統的なページ技術はページをリフレッシュすると最新のコードを実行することができます.これはnode requireが導入したファイルモジュールがキャッシュされるので、これを実現するにはfsを祭る必要があります.watchという大殺器は、次のように実現されています.
app.js
const fs=require("fs");
const Path=require("path");
fs.watch(__dirname,{
persistent: true,
recursive: true
},function(event,filename){
if (event === "change") {
let fullName=Path.resolve(__dirname,filename);
if(Path.extname(fullName)==".js"){
if (require.cache[fullName]) {
require.cache[fullName] = null;;
}
require(fullName);
}
}
});
Node.jsサーバページ開発フレームワークの推奨
本文の構想に基づいて、私はすでに比較的完備したNodeを実現した.js開発フレームワークwebcontextは、リクエストコンテキストパッケージ、静的ファイルサービス、逆エージェント、データベースアクセス、sesisonアクセス、ログ記録などのwebアプリケーションサーバの必須機能を実現し、好きならstarを求める
転送ドア:github.com/windyfancy/…
転載先:https://juejin.im/post/5ccf00eae51d453b7f0a0d44