導航:首頁 > 編程語言 > nodejs路由詳解

nodejs路由詳解

發布時間:2023-12-15 03:42:42

1. 如何用nodejs搭建web伺服器

創建一個記事本將下面的代碼復制進去 保存為app.js
var http = require('http');//引入響應頭

http.createServer(function (request, response) {
//參數一是與請求相關的對象
//參數二是與響應有關的對象
// 發送 HTTP 頭部
// HTTP 狀態值: 200 : OK
// 內容類型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});

// 發送響應數據 "Hello World"
response.end('Hello World\n');
}).listen(8888);//監聽埠

// 終端列印如下信息
console.log('Server running at http://127.0.0.1:8888/');
以下以我的電腦上的路徑為准 我是將app.js 保存在E:\NODE這個文件夾下面
接下來就是運行了打開cmd
第一步:E:
第二步:cd NODE //CD是 命令行改變目錄的命令
第三步:node app.js

這個是運行效果接下來訪問localhost:8888就可以看到hollo word
建議多看一些node的模塊 比如 express和session mysql之類的模塊

2. nodejs搭建web伺服器就是這么簡單!

Node.js 是一個基於 Chrome V8 引擎的 javaScript 運行環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。(nodejs官網上的介紹),正如官網上介紹的那樣,nodejs確實很牛!怎麼個牛法?看看下面的代碼就知道了。

//引入http模塊

var http = require("http");

//設置主機名

var hostName = 飗.0.0.1'

//設置埠

var port = 8080;

//創建服務

var server = http.createServer(function(req,res){

res.setHeader('Content-Type','text/plain');

res.end("hello nodejs");

});

server.listen(port,hostName,function(){

console.log(`伺服器運行在http://${hostName}:${port}`);

});

短短幾行代碼就把一個簡單的web伺服器搭建完成了,為了驗證效果,我們在瀏覽器請求,結果如下

運行成功!

到此為止,一個web伺服器就建立成功了! 沒錯就是這么簡單,然後我們就可以寫個html界面愉快的玩耍了,哈哈哈!果斷的寫了一個html頁面來請求一下我們的web伺服器。

代碼簡單,點擊p獲取數據並將伺服器返回的數據展示。好了,我們運行一下demo.html文件,我擦來!居然出現了……

很明顯,通過jquery請求不到數據,這是因為跨域請求的原因。我們的web伺服器並不支持跨域請求,所以報錯了。解決方式:在伺服器的響應頭文件里加上如下代碼:

再次重啟伺服器,運行demo.html,顯示結果很是令人欣喜!

通常請求伺服器都會拼接參數的,最常用的就是get請求,post請求。很明顯,我們現在的代碼還不能支持。express框架很好的封裝了nodejs的http模塊,使我們用起來非常的簡單。

引入express :$ cnpm install express –save

使用方式變化不大,通過express()方法開啟服務,然後在通過get方法來設置匹配參數的路由,通過在回調函數的req中可以獲取請求參數和地址。post請求也是類似,不過有不同的是,post請求在獲取參數的時候要引入body-parser 中間件,用於處理 JSON, Raw, Text 和 URL 編碼的數據。

運行結果:

完整的get以及post請求就是以上了。下一篇文章會結果fs文件模塊介紹http是如何返迴文件的,敬請期待!!

學習從來不是一個人的事情,要有個相互監督的夥伴,想要學習或交流前端問題的小夥伴可以私信「學習」小明加群獲取2019web前端最新入門資料,一起學習,一起成長!

3. nodejs express 路由設置網頁跳轉

1、首先創建app.js,輸入:

varexpress=require("express")

varport=process.env.PORT||3000

varapp=express()

app.set('views','./views')

app.set('viewengine','jade')

app.listen(port);

4. NodeJS項目基礎結構簡單介紹

按照常規,去執行npm start

或者在Terminal中手動輸入命令,結果如下:

可以看到是執行了test/package.json文件中的 start 命令,初始packagejson.json文件內容如下:

執行 start ,對應的命令為 node ./bin/www 並在命令行執行。現在項目已經啟動成功了,可以打開瀏覽器輸入 localhost:3000 查看一下,但是本次側重點在於項目啟動時候發生的完整的過程。所以……

那麼我們需要看一下 ./bin/www 文件

通過 require() 來引入本地安裝的包,這里載入了三個包 app、debug 、http ,主要關注一下app.js

可以看到app載入的為該項目基礎組件,核心為 var app = express(); 看一下express.js

將app用到的中間件等暴露出來,所以 app = express() 實際上就是載入應用基礎組件,生成項目的根節點(當然這個節點是復合的)。所以在app.js中,進行的是載入應用基礎組件並進行應用設置初始化(包含了視圖目錄設置、頁面模板引擎設置、中間件的設置、靜態資源目錄設置以及錯誤捕捉相關內容)。

繼續回到 www.js ,同樣將debug配置、http相關組件進行載入。繼而是默認埠號的設定。通過http.createServer(app),創建應用服務相關信息,並對埠進行監聽。

瀏覽器輸入 localhost:3000

控制台顯示:

說明在以 GET 方式請求URI為 "/" 的資源,並以 GET 方式請求 /stylesheets/style.css 資源,這個發生在app.js中我們設定的資源請求。

我們來看下 ./routes/index 文件

即定義網站主頁的路由

使用 express.Router 類創建模塊化、可掛載的路由句柄(簡稱:路由模塊)。Router 實例是一個完整的中間件和路由系統。最終,在應用中載入路由模塊app.use('/', indexRouter);

通過 res.render 對視圖進行渲染,上述為對index.ejs的渲染。 ps:在app.js中已經設定了views的所在目錄 。語法: res.render(view [,locals] [,callback])

示例:

區別:路由句柄

為請求處理提供多個回調函數,其行為類似 中間件 。唯一的區別是這些回調函數有可能調用 next('route') 方法跳至下一個同路由的回調函數而略過其他路由回調函數。路由句柄有多種形式,可以是一個函數、一個函數數組,或者是兩者混合。

使用一個回調函數處理路由:

使用多個回調函數處理路由(記得指定 next 對象):

使用回調函數數組處理路由:

混合使用函數和函數數組處理路由:

區別:路由方法

一個路由示例:

路由方法源於 HTTP 請求方法,和 express 實例相關聯。

獲取express的一個實例 app ,通過路由方法(和HTTP請求對應),GET方式請求 "/"。詳細的路由方法參考鏈接: 路由方法

5. nodejs-koa2(mvc模式)前後端分離 前端設計

前後端分離,前端nodejs運行環境,使用koa2集成負責資源分配與用戶交互,實現token驗證用戶身份,路由控制。等!

自行 網路 解決;

"program": "${workspaceFolder}app.js"

此處就是是將app.js作為啟動文件。${workspaceFolder}代表根目錄,vsc啟動時會在根目錄下找到並載入app.js文件。

參數介紹: name 項目名稱、 version 版本號、 description 項目描述、 main 項目啟動文件、 scripts 啟動快捷設置, author 作者, dependencies 第3方中間件名稱及版本。

最重要的
dependencies 」這里添加一些要用到的包,以上是這次要用到的所有的包,版本自己更改。
scripts 」這里是一些nodejs的便捷命令,上線的時候會用到,直接在終端中,package.json同級目錄 ,執行『npm start』 即 可啟動app.js。
別的沒啥太大作用瞎寫即可。

啟動相關配置,封裝到config/init.js中,啟動文件直接引用即可

3-6-1、init.js項目核心。

異常友好處理方法封裝

路由配置

視圖渲染

核心集成

3-6-2、config.js項目參數配置。為什麼不用json文件 因為json不能加註釋

3-6-3、token.js項目token相關方法封裝。

執行後項目結構會增加兩個文件

新增

src/hello.js。

views/index.html

瀏覽器訪問: http://127.0.0.1:3000/koa/login

輸入值獲取token

獲取的token如圖:

先不用帶token進行訪問: http://127.0.0.1:3000/koa/ hello/jiaobaba,被token攔截,返回401

帶上token訪問: http://127.0.0.1:3000/koa/ hello/jiaobaba

測試頁面渲染,及跳轉html頁面,直接訪問 http://127.0.0.1:3000/koa /views

結束!!!!!!

需要源碼聯系我

6. nodejs 中express框架中request有哪些屬性和方法

最近本人在學習開發NodeJs,使用到express框架,對於網上的學習資料甚少,因此本人會經常在開發中做一些總結。

express獲取參數有三種方法:官網介紹如下

Checks route params (req.params), ex: /user/:id
Checks query string params (req.query), ex: ?id=12
Checks urlencoded body params (req.body), ex: id=
1、例如:127.0.0.1:3000/index,這種情況下,我們為了得到index,我們可以通過使用req.params得到,通過這種方法我們就可以很好的處理Node中的路由處理問題,同時利用這點可以非常方便的實現MVC模式;

2、例如:127.0.0.1:3000/index?id=12,這種情況下,這種方式是獲取客戶端get方式傳遞過來的值,通過使用req.query.id就可以獲得,類似於PHP的get方法;

3、例如:127.0.0.1:300/index,然後post了一個id=2的值,這種方式是獲取客戶端post過來的數據,可以通過req.body.id獲取,類似於PHP的post方法;

下面舉例介紹下這三個方法:

如下一個test.html代碼

<form action="/index" method="get">
<input type="text" name="login_name"/>
<input type="submit" value="Sign In" />
</form>
在nodeJs中我們要自定義HTTP,因此創建index.js
var app = require('express').createServer();

app.get('/:key', function(req, res){
console.log(req.params.key);//輸出index
console.log(req.query.login_name);//輸出表單get提交的login_name
res.send('great you are right for get method!');//顯示頁面文字信息
});
app.post('/:key', function(req, res){
<pre name="code" class="javascript"> console.log(req.params.key);//輸出index
console.log(req.body.login_name);//輸出表單post提交的login_name
res.send('great you are right for post method!');//顯示頁面文字信息
});app.listen(3000);

之後運行node index.js就可以看到本效果,當然前提是你要先訪問test.html,至於如何通過express訪問一個html文件我就不詳細描述了,可以參考如下代碼:
global.fs=require('fs');
var realpath = VIEW + "test.html";
var file = fs.readFileSync(realpath);
res.end(file);

閱讀全文

與nodejs路由詳解相關的資料

熱點內容
it教學app有哪些 瀏覽:34
怎麼在ps摳的圖變成矢量文件 瀏覽:405
口袋妖怪銀魂安卓v11 瀏覽:1
網站上芒果tv的賬號都是什麼 瀏覽:104
帶公式的表格如何刷新數據 瀏覽:81
數據標注語音和2d哪個好 瀏覽:145
保存excel文件的方法 瀏覽:655
手機上看不到電腦上的文件 瀏覽:626
關於ps的微信公眾號 瀏覽:612
矩陣論教程 瀏覽:971
字體文件分系統嗎 瀏覽:921
編程一級考試要帶什麼證件 瀏覽:923
extjs表格修改前數據 瀏覽:612
什麼是資料庫的函數 瀏覽:722
oppo手機怎麼用數據線連接電腦 瀏覽:247
恆智天成備份文件在哪裡 瀏覽:976
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827

友情鏈接