欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

手把手教你用node.js搭建一個Web服務

 更新時間:2024年04月26日 08:31:09   作者:劉先生..  
Web服務器一般指網(wǎng)站服務器,是指駐留于因特網(wǎng)上某種類型計算機的程序,下面這篇文章主要給大家介紹了關于用node.js搭建一個Web服務的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、引言

Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境,可用于開發(fā)各種類型的應用程序,包括 Web 服務。本文將介紹如何使用 Node.js 搭建一個簡單的 Web 服務,并附帶示例代碼。

二、創(chuàng)建 node 項目

 創(chuàng)建一個名為 node-serve 的文件夾,然后在當前文件下輸入初始化node項目命令。

npm init

然后一直按回車即可,完成之后可生成一個 package.json 文件。

中間的配置過程可后續(xù)在生成的 package.json 文件中配置 

 在當前文件夾下新建一個 index.js 的文件,為當前項目的主入口文件。

到這里 node 項目基本就創(chuàng)建完成了。

三、創(chuàng)建 Web 服務

下載 express 包

npm install express --save

編寫 index.js 文件,引入 express 并啟動一個服務

const express = require('express');  
const app = express();  
  
// 設置路由 ( 接口 )
app.get('/', (req, res) => {  
  res.send('Hello World!');  
});  
  
// 啟動服務  
app.listen(3000, () => {  
  console.log('Server started on port 3000');  
});

在這個示例中,我們創(chuàng)建了一個 express 應用,并設置了一個路由,當訪問根路徑 / 時,返回字符串 'Hello World!'。

在當前文件夾下使用終端命令啟動服務

node index.js

使用 postman 測試如下

四、使用中間件 

中間件是指那些在處理 HTTP 請求和響應周期中的某個特定階段執(zhí)行代碼的函數(shù)。這些函數(shù)可以執(zhí)行各種任務,例如解析請求體、驗證身份、記錄日志、路由處理等。

body-parser

body-parser 是一個 Node.js 中間件,用于解析 HTTP 請求體。它提供了多種解析器,如 JSON、Raw、Text 和 URL-encoded form,以處理不同類型的請求體。

const express = require('express');  
const bodyParser = require('body-parser');  
const app = express();  
  
// 使用 body-parser 中間件解析 JSON 請求體  
app.use(bodyParser.json());  
  
// 使用 body-parser 中間件解析 URL-encoded form 請求體  
app.use(bodyParser.urlencoded({ extended: true }));  
  
// 定義路由處理程序  
app.get('/', (req, res) => {  
  res.send('Hello World!');  
});  
  
app.post('/api/data', (req, res) => {  
  // 解析請求體中的 JSON 數(shù)據(jù)  
  const data = req.body;  
  // 處理數(shù)據(jù)...  
});  
  
app.listen(3000, () => {  
  console.log('Server started on port 3000');  
});

自定義中間件

const express = require('express');  
const app = express();  
  
// 定義一個中間件函數(shù)  
function myMiddleware(req, res, next) {  
  console.log('Middleware executed');  
  next(); // 調(diào)用 next() 函數(shù)以將控制權傳遞給下一個中間件或路由處理器  
}  
  
app.use(myMiddleware); // 將中間件應用到應用中  
  
app.get('/', (req, res) => {  
  res.send('Hello World!');  
});  
  
app.listen(3000, () => {  
  console.log('Server started on port 3000');  
});

五、http 請求和 http 響應

http 請求

// HTTP請求方法(GET、POST、PUT、DELETE等)。
req.method

// HTTP請求的URL。
req.url

// 請求的URL路徑名。
req.path

// 包含在URL查詢字符串中的參數(shù)對象。
req.query

// 包含HTTP請求頭的對象。
req.headers

// 包含在POST請求中的請求主體的對象。需要使用body-parser中間件才能訪問。
req.body

// 包含路由參數(shù)的對象。例如,對于路徑/user/:id,req.params.id將包含匹配的ID。
req.params

// 客戶端的IP地址。
req.ip

// 請求的主機名。
req.host

// 獲取HTTP請求頭的指定字段的值。
req.get(field)

// 獲取客戶端的cookie。選項可以包括簽名選項(如果cookie是加密的)。
req.cookie(name[, options])

以上是常見請求對象及方法 

http 響應

res 代表 HTTP 響應對象。通過 res,你可以設置 HTTP 響應的狀態(tài)碼、響應頭和響應主體。

// HTTP 響應的狀態(tài)碼,表示請求的處理結果。例如,200 表示成功,404 表示找不到資源。
res.status(code)

//設置 HTTP 響應的響應頭。name 參數(shù)是響應頭的名稱,value 參數(shù)是響應頭的值。
res.setHeader(name, value)

//獲取 HTTP 響應的響應頭。name 參數(shù)是響應頭的名稱。
res.getHeader(name)

//移除 HTTP 響應的響應頭。name 參數(shù)是響應頭的名稱。
res.removeHeader(name)

//設置一個 HTTP cookie,并將值存儲在客戶端上。
res.cookie(name, value)

//設置 HTTP 響應一個 JSON 對象、一個數(shù)組或者一個字符串。
res.json(json)

//響應一個字符串、一個數(shù)字、一個布爾值或者一個對象。
res.send(body)

//渲染一個視圖模板并將結果發(fā)送到客戶端。
res.render(view, [options], callback)

//將 HTTP 響應標記為附件,通常用于下載功能。filename 參數(shù)是可選的,表示要下載的文件名。
res.attachment([filename])

//將指定的文件作為 HTTP 響應發(fā)送給客戶端。path 參數(shù)是文件的路徑,options 參數(shù)是可選的,用于配置文件的響應選項。
res.sendFile(path[, options])

//將指定的文件作為 HTTP 下載提供給客戶端。path 參數(shù)是文件的路徑,filename 參數(shù)是可選的,表示要下載的文件名。
res.download(path[, filename])

//將客戶端重定向到指定的 URL。
res.redirect(url)

以上是常見響應方法

六、使用路由(多文件)

創(chuàng)建 router.js 

const express = require('express');  
const router = express.Router();  
  
// 定義一個路由處理程序,用于處理GET請求  
router.get('/test', function(req, res) {  
  res.send('Hello World!');  
});  
  
// 定義另一個路由處理程序,用于處理POST請求  
router.post('/submit', function(req, res) {  
  res.send('Submit received!');  
});  
  
module.exports = router;

在 index.js 中引用 router.js

const express = require('express');  
const app = express();
 

const router = require('./router'); // 導入路由器對象  
// 將路由器對象添加到應用程序中
app.use(router); //(訪問 localhos/test)
// 將路由器對象添加到應用程序中(加入自定義統(tǒng)一前綴)
app.use('/api',router); //(訪問 localhost/api/test)
  
app.listen(3000, function() {  
  console.log('Server is running on port 3000');  
});

總結 

到此這篇關于用node.js搭建一個Web服務的文章就介紹到這了,更多相關node.js搭建Web服務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • express如何使用session與cookie的方法

    express如何使用session與cookie的方法

    本篇文章主要介紹了express如何使用session與cookie的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Koa2框架快速入門與基本使用方式

    Koa2框架快速入門與基本使用方式

    這篇文章主要介紹了Koa2框架快速入門與基本使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • nodejs個人博客開發(fā)第三步 載入頁面

    nodejs個人博客開發(fā)第三步 載入頁面

    這篇文章主要為大家詳細介紹了nodejs個人博客開發(fā)的載入頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • node.js中的fs.chmod方法使用說明

    node.js中的fs.chmod方法使用說明

    這篇文章主要介紹了node.js中的fs.chmod方法使用說明,本文介紹了fs.chmod方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Nodejs學習筆記之Stream模塊

    Nodejs學習筆記之Stream模塊

    nodejs的fs模塊并沒有提供一個copy的方法,但我們可以很容易的實現(xiàn)一個,這種方式是把文件內(nèi)容全部讀入內(nèi)存,然后再寫入文件,對于小型的文本文件,這沒有多大問題,比如grunt-file-copy就是這樣實現(xiàn)的。
    2015-01-01
  • node.js去水印方法實例分析

    node.js去水印方法實例分析

    這篇文章主要介紹了node.js去水印方法,結合實例形式分析了node.js基于第三方平臺實現(xiàn)去水印的相關交互與操作技巧,需要的朋友可以參考下
    2023-04-04
  • node.js中的fs.chmodSync方法使用說明

    node.js中的fs.chmodSync方法使用說明

    這篇文章主要介紹了node.js中的fs.chmodSync方法使用說明,本文介紹了fs.chmodSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 基于Nodejs的Tcp封包和解包的理解

    基于Nodejs的Tcp封包和解包的理解

    這篇文章主要介紹了基于Nodejs的Tcp封包和解包的理解,詳細的介紹了tcp的分包與拆包并實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • node連接mysql,并操作mysql方式

    node連接mysql,并操作mysql方式

    這篇文章主要介紹了node連接mysql,并操作mysql方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Express框架定制路由實例分析

    Express框架定制路由實例分析

    這篇文章主要介紹了Express定制路由,結合實例形式分析了express框架定制路由原理、用法及相關注意事項,需要的朋友可以參考下
    2023-05-05

最新評論