快速,輕巧,自我包含且易於使用Nodejs的Web框架。
炒菜是在Nodejs中製作Web服務器的框架。它使您能夠快速,輕鬆地創建Web應用程序和服務器。因此,這是創建一個方法:
第一步是創建使用Fry的服務器程序。首先創建一個文件夾,您可以將其稱為所需的任何內容。
確保您的計算機上安裝了node.js。 https://nodejs.org/en/download/
下一個導航到終端中的該文件夾並運行此命令:
npm install stirfry
這將炒入服務器正在運行的文件夾中。接下來創建一個名為server.js的文件,然後使用您喜歡的代碼編輯器打開它。添加此代碼:
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . request ( function ( request , response ) {
response . send ( "Hello World!" ) ;
} ) ;運行server.js ,鍵入: node server.js
確保您在終端中具有server.js文件的同一目錄中
如果那不起作用,請嘗試: nodejs server.js
如果那不起作用,則必須安裝nodejs。
假設您已經做對了,則可以轉到localhost:8080在任何網絡瀏覽器中,它都應該顯示Hello World!
將服務器設置為等於new StirFry(8080)意味著您告訴服務器在端口8080上聆聽任何請求。然後呼叫server.request添加了輸入作為請求的響應。
所有聽眾被稱為後,它將響應發送給用戶。您可以通過寫作來添加響應
response . send ( "The thing you want to add to the response" ) ;因此,通過鍵入response.send("Hello World!")您做出了響應。
炒菜使您能夠預處理和響應對象進行預處理。基本上,這意味著您可以為馬彎曲編寫滋補和mod。這是一個例子
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . pre ( function ( request , response ) {
//Now I can change the request and response object before the next code runs
request . doubleURL = request . url + request . url ;
}
server . request ( function ( request , response ) {
//Now I can access request.doubleURL, and I also can in every request listener
respose . send ( request . doubleURL ) ;
} ) ; 您可以使用與普通服務器相同的語法創建擴展名,並僅通過說server.use(extension)來使用它們,以下是一個示例,請記住,擴展名不支持添加層。如果您希望在擴展中創建圖層,則創建一個將服務器作為輸入的函數並調用。
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let extension = new StirFry . extension ( ) ;
//I can put more preprocessors and responders if I want
extension . pre ( function ( request , response ) {
request . doubleURL = request . url + request . url ;
} ) ;
let server = new StirFry ( 8080 ) ;
server . use ( extension ) ;
server . request ( function ( request , response ) {
//I can use request.doubleURL
response . send ( request . doubleURL ) ;
} ) ; "use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . request ( function ( request , response ) {
response . send ( "Hello World!" ) ;
} ) ;此示例將在端口8080上創建服務器,並將其設置為與Hello World!根據任何要求。當您使用response.send時,請記錄將輸入附加到響應中。
炒麵有一個內置的靜態文件服務器方法。您需要做的就是:
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . request ( StirFry . static ( 'public' ) ) ;公共是文件從中提供的文件夾。
攪拌式炒菜使您可以一次運行多個異步操作。您可以在server.process中進行所有想要的預處理。程序層,然後所有這些都完成後,它將運行server.pre偵聽器,一旦完成,它將運行server.request偵聽器。
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
let fs = require ( 'fs' ) ;
server . pre ( function ( request , response , end , async ) {
async . start ( ) ;
fs . readFile ( 'file.txt' , function ( err , data ) {
response . data = data . toString ( ) ;
async . done ( ) ;
} ) ;
} ) ;
server . request ( function ( request , response ) {
response . send ( response . data ) ;
} ) ;該程序使用fs.readFile將屬性添加到響應對象,然後將其發送給用戶。有很多更有效的方法來執行此操作,這只是如何使用async的一個示例。
炒麵有一個內置response.sendFile 。 Sendfile方法,這是一個示例:
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . request ( function ( request , response ) {
response . sendFile ( 'file.html' ) ;
} ) ; 當您創建請求,預處理器或處理器偵聽器時,您可以選擇將其限制在Regex匹配中的某些請求中。這是一個示例:
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . request ( / /.*?/hi / , function ( request , response ) {
response . send ( "hi" ) ;
} ) ;您可以通過訪問request.params作為數組來訪問REGEX捕獲組。 request.params還處理請求中的查詢字符串。
只需編寫server.use(thePluginObject)
創建插件的工作方式與創建服務器非常相似。唯一的區別是您使用new StirFry.extension()而不是new StirFry() 。然後,您可以說server.use(extension)並管理所有聽眾。這是一個例子
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let extension = new StirFry . extension ( ) ;
extension . req ( function ( request , response ) {
let log = `Request recieved with ${ request . post ? ` ${ request . post } as post and ` : `` } ${ request . fullUrl || request . url } as the url. Recieved from ${ request . ip } on ` + formatDate ( new Date ( ) ) ; //Format date is defined externally
console . log ( log ) ;
} ) ;這類似於內置的記錄器擴展名。這是您可以使用它的方式
"use strict" ;
let server = new StirFry ( 8080 ) ;
server . use ( extension ) ;內置記錄器是一個返回擴展的函數,因為人們能夠定義日誌文件
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . use ( StirFry . logger ( "logFile" ) ) ; 您可以通過訪問request.post作為關聯數組訪問發布數據
截至1.6.0,Stirfry允許在服務器中創建自定義圖層。此語法涉及三個函數server.createLayer , server.destroyLayer和server.placeLayer 。 Create Layer採用的字符串是要創建圖層的名稱。銷毀圖層與創建圖層相同,但它將刪除IT而不是創建它。位置層將取下兩個層的名稱,以使其具有與第一個輸入相同的名稱的圖層,總是在具有第二個輸入名稱的圖層之後被調用。
"use strict" ;
let StirFry = require ( '../../stirfry.js' ) ;
let server = new StirFry ( 8080 , '0.0.0.0' ) ;
server . createLayer ( 'final' ) ;
server . placeLayer ( 'final' , 'request' ) ;
server . addListenerOnLayer ( 'final' , function ( req , res ) {
res . send ( 'Hello World!' ) ;
} ) ; 弗萊的原始作者是亞歷克斯·瓦斯·珀爾曼(Alex Waese-Perlman)
所有貢獻者的清單
麻省理工學院