摘要:如果說用一句話來概括那就是它開啟了服務(wù)器端語言。系列的文章并不會(huì)從一開始長篇概論的講的歷史,安裝,以及其他很瑣碎的事情。只會(huì)專門介紹關(guān)于或者準(zhǔn)確來講是關(guān)于的敏捷開發(fā)。性能不對已有的特性進(jìn)行二次抽象,我們只是在它之上擴(kuò)展了應(yīng)用所需的基本功能。
如果說用一句話來概括Node那就是:它開啟了JavaScript服務(wù)器端語言。 Node系列的文章并不會(huì)從一開始長篇概論的講Node的歷史,安裝,以及其他很瑣碎的事情。只會(huì)專門介紹關(guān)于Node或者準(zhǔn)確來講是關(guān)于Node的敏捷開發(fā)。
首先我們需要一個(gè)腳手架
快速了解Express
1.Express 是一個(gè)基于 Node.js 平臺的極簡、靈活的 web 應(yīng)用開發(fā)框架,它提供一系列強(qiáng)大的特性,幫助你創(chuàng)建各種 Web 和移動(dòng)設(shè)備應(yīng)用。
2.API
豐富的 HTTP 快捷方法和任意排列組合的 Connect 中間件,讓你創(chuàng)建健壯、友好的 API 變得既快速又簡單。
3.性能
Express 不對 Node.js 已有的特性進(jìn)行二次抽象,我們只是在它之上擴(kuò)展了 Web 應(yīng)用所需的基本功能。
如果說你對以上還是云里霧里的話,我們接下來馬上利用Express開發(fā)一個(gè)網(wǎng)站
Express五分鐘開發(fā)一個(gè)網(wǎng)站
首先確保你已經(jīng)安裝好Node.exe 及其附帶的npm , 這是我們開發(fā)的關(guān)鍵,然后打開任意的命令行不管是系統(tǒng)自帶的命令行或者node附帶的亦或是Git cmd.
鍵入:
$ npm install express-generator -g // npm install 是安裝任何第三方包的命令, express-generator -g 指在全局范圍下安裝名為 express-generator 的第三方包。
等待系統(tǒng)聯(lián)網(wǎng)安裝express,下載完成后,可以選擇你喜歡的名字作為應(yīng)用目錄:
express myapp //指在當(dāng)前命令行目錄下創(chuàng)建一個(gè)名為myapp的文件夾用來做應(yīng)用目錄
等待系統(tǒng)生成應(yīng)用骨架,然后進(jìn)入myapp目錄下:
cd myapp //到達(dá)我們的工作目錄
然后 下載所有express這個(gè)應(yīng)用所需的所有依賴項(xiàng) (可以理解為前端項(xiàng)目自動(dòng)下載jquery,bootstrap 之類的第三方庫或者框架,當(dāng)然事實(shí)上并不是這個(gè)意思):
npm install
下載完畢后,就可以啟動(dòng)我們的express應(yīng)用了,運(yùn)行:
npm start // 或者 node app.js 或者其實(shí)還有很多的巧計(jì)
現(xiàn)在打開你喜歡的Chrome瀏覽器或者Edge 瀏覽器 網(wǎng)址輸入奇怪的 域名:
http://localhost:3000/
等待片刻,標(biāo)志性的Express 就出來了,現(xiàn)在不管你的心情是欣喜或者郁悶抑或習(xí)以為常,這本質(zhì)上就是一個(gè)網(wǎng)站了,為防你不信,還可以輸入另一個(gè)奇怪的域名:
http://localhost:3000/users //
我們剛才僅僅只是簡單的啟動(dòng)了express罷了,現(xiàn)在開始真正的開發(fā)了。
在目錄下新建一個(gè)名為server.js 的文件,作為項(xiàng)目的入口文件:
/* 以下代碼等下會(huì)有詳細(xì)的解釋 */ var express = require("express"); // 用來引入express模塊 var app = express(); // express 實(shí)例對象 app.set("port",process.env.PORT || 3000); // 設(shè)置端口為3000 app.get("/",function (req,res) { // 設(shè)置首頁的路由 用 "/" 表示 res.send("Ritsu Yan ") }) app.get("/about",function (req,res) { //設(shè)置about頁面的路由 用 "/about" 表示 res.send("the node course") }) app.use(function (req,res,next) { // 設(shè)置404頁面 res.status(404); res.send("404 - Not Found") }) app.listen(app.get("port"),function () { // 監(jiān)聽端口如果有用戶進(jìn)入頁面發(fā)送請求我們輸出以下語句 console.log("express started on port 3000") })
現(xiàn)在 關(guān)閉當(dāng)前命令行新建一個(gè) 命令行然后重新輸入
node server.js
然后瀏覽器重載首頁即
http://localhost:3000/
或者
http://localhost:3000/about
都能得到滿意的回應(yīng)
現(xiàn)在我們看看server.js 做了什么
1、使用require("xxx") 引入了express 模塊, 這種方式是 Node 中少數(shù)同步的操作,它一開始會(huì)去Node 的原始 node_modules 目錄下尋找express 模塊 然后引入,把值賦給express,然后實(shí)例化為app.
2、app.set("port",xxx) 能夠設(shè)置我們的域名端口,這里process.env.PORT是指
環(huán)境變量要是設(shè)置了PORT,那么就用環(huán)境變量的PORT,環(huán)境變量沒有我們就用3000.
其他路由信息可以自行百度或者暫時(shí)只需要了解 app.get是 用來處理路由請求的.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92214.html
摘要:網(wǎng)站的遷移遷移主要用到了命令,當(dāng)然網(wǎng)站小文件比較多的情況下例如,那么最好先打包在遠(yuǎn)程拷貝,速度會(huì)快很多。但是在服務(wù)器上安裝的時(shí)候死活提示缺少依賴。 從 vultr 遷移到 digitalocean 幾個(gè)月前收到 digitalocean 發(fā)來的郵件,說因?yàn)槲已堄脩糇圆⑦_(dá)到他的要求,送了我50刀的額度,本來就沒想到它能送,結(jié)果不久之前它又送了一次,果斷讓我產(chǎn)生了回到它的懷抱的念頭,...
摘要:因?yàn)檫M(jìn)程退出之后將不再執(zhí)行事件循環(huán),所有只有那些沒有回調(diào)函數(shù)的代碼才會(huì)被執(zhí)行。此外,創(chuàng)建的回調(diào)函數(shù)具有隔離性,他們之間不會(huì)相互影響。我們來看的一個(gè)簡單例子,他創(chuàng)建了一個(gè)子進(jìn)程,第一個(gè)參數(shù)是一個(gè)命令,第二個(gè)參數(shù)是回調(diào)函數(shù),處理返回結(jié)果。 雖然node對操作系統(tǒng)做了很多抽象的工作,但是你還是可以直接和他交互,比如和系統(tǒng)中已經(jīng)存在的進(jìn)程進(jìn)行交互,創(chuàng)建工作子進(jìn)程。node是一個(gè)用于事件循環(huán)的線...
摘要:查詢字符串中的參數(shù)要用比如這樣的請求,應(yīng)該是要用和來獲取和的值,最終打印出如下關(guān)于此外,框架本身是沒有解析的如果打印出來則說明沒有安裝解析的插件為了解析一般可以安裝這個(gè)插件假設(shè)是的實(shí)例在所有路由前插入這個(gè)中間件這樣就可以了。 首發(fā)地址:https://clarencep.com/2017/04...轉(zhuǎn)載請注明出處 注意:req.params 只有在參數(shù)化的路徑中的參數(shù)。查詢字符串中的參...
摘要:參數(shù)說明文件描述符,必須接收方法中的回調(diào)函數(shù)返回的第二個(gè)參數(shù)。引入模塊打開文件讀取文件打印出中存入的數(shù)據(jù)關(guān)閉文件運(yùn)行結(jié)果如下五目錄操作創(chuàng)建目錄使用創(chuàng)建目錄,是需要?jiǎng)?chuàng)建的目錄,是目錄的權(quán)限默認(rèn)是,是回調(diào)函數(shù)。 一、同步和異步使用require(fs)載入fs模塊,模塊中所有方法都有同步和異步兩種形式。異步方法中回調(diào)函數(shù)的第一個(gè)參數(shù)總是留給異常參數(shù)(exception),如果方法成功完成,...
摘要:事件的監(jiān)聽與事件的觸發(fā)事件一事件機(jī)制的實(shí)現(xiàn)中大部分的模塊,都繼承自模塊。從另一個(gè)角度來看,事件偵聽器模式也是一種事件鉤子的機(jī)制,利用事件鉤子導(dǎo)出內(nèi)部數(shù)據(jù)或狀態(tài)給外部調(diào)用者。的核心就是事件發(fā)射與事件監(jiān)聽器功能的封裝。 nodejs事件的監(jiān)聽與事件的觸發(fā) nodejs事件(Events)showImg(https://segmentfault.com/img/bV0Sqi?w=692&h=...
閱讀 917·2021-10-25 09:44
閱讀 1308·2021-09-23 11:56
閱讀 1218·2021-09-10 10:50
閱讀 3156·2019-08-30 15:53
閱讀 2161·2019-08-30 13:17
閱讀 648·2019-08-29 18:43
閱讀 2538·2019-08-29 12:57
閱讀 886·2019-08-26 12:20