เร็ว น้ำหนักเบา บรรจุตัวเอง และ ใช้งานง่าย สำหรับเว็บสำหรับ nodejs
Stir Fry เป็นกรอบสำหรับการสร้างเว็บเซิร์ฟเวอร์ใน nodejs ช่วยให้คุณสามารถสร้างเว็บแอปและเซิร์ฟเวอร์ได้อย่างรวดเร็วและง่ายดาย ดังนั้นนี่คือวิธีการสร้าง:
ขั้นตอนแรกคือการสร้างโปรแกรมเซิร์ฟเวอร์ที่ใช้ผัด เริ่มต้นด้วยการสร้างโฟลเดอร์คุณสามารถเรียกสิ่งที่คุณต้องการได้
ตรวจสอบให้แน่ใจว่าคุณติดตั้ง 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!") คุณได้ตอบกลับ
ผัด Fry ช่วยให้คุณสามารถประมวลผลวัตถุคำขอและการตอบกลับได้ล่วงหน้า โดยทั่วไปนั่นหมายความว่าคุณสามารถเขียน exensions และ mods สำหรับการผัด นี่คือตัวอย่าง
"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 ต่อจะผนวกอินพุตเข้ากับการตอบกลับ
ผัด Fry มีวิธีเซิร์ฟเวอร์ไฟล์แบบคงที่ในตัวสิ่งที่คุณต้องทำคือ:
"use strict" ;
let StirFry = require ( 'stirfry' ) ;
let server = new StirFry ( 8080 ) ;
server . request ( StirFry . static ( 'public' ) ) ;สาธารณะคือโฟลเดอร์ที่ไฟล์ได้รับจาก
ผัด Fry ช่วยให้คุณดำเนินการหลายแบบอะซิงโครนัสในครั้งเดียว คุณสามารถทำการประมวลผลล่วงหน้าทั้งหมดที่คุณต้องการใน server.process เลเยอร์ 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
Stir Fry มีวิธี 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" ) ;
} ) ; คุณสามารถเข้าถึงกลุ่มการจับภาพ Regex ได้โดยการเข้าถึง request.params เป็นอาร์เรย์ 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 ) ;
} ) ;ที่คล้ายกับส่วนขยายของ Logger ในตัว นี่คือวิธีที่คุณสามารถใช้งานได้
"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 สร้างเลเยอร์ใช้สตริงที่เป็นชื่อของเลเยอร์เพื่อสร้าง ทำลายเลเยอร์เหมือนกับการสร้างเลเยอร์ แต่จะลบมันออกแทนที่จะสร้าง Place Layer จะใช้ชื่อของสองเลเยอร์มันจะทำให้มันเป็นเลเยอร์ที่มีชื่อเดียวกับอินพุตแรกจะได้รับการเรียกหลังจากเลเยอร์ที่มีชื่อของอินพุตที่สอง
"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!' ) ;
} ) ; ผู้เขียนดั้งเดิมของ Stir Fry คือ Alex Waese-Perlman
รายชื่อผู้มีส่วนร่วมทั้งหมด
มิกซ์