node.js 如何搭建一个 Web 服务

这篇具有很好参考价值的文章主要介绍了node.js 如何搭建一个 Web 服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引言

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可用于开发各种类型的应用程序,包括 Web 服务。本文将介绍如何使用 Node.js 搭建一个简单的 Web 服务,并附带示例代码。

二、创建 node 项目

 创建一个名为 node-serve 的文件夹,然后在当前文件下输入初始化node项目命令。

npm init

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

nodejs启动项目web,node 项目,node.js,后端,express

中间的配置过程可后续在生成的 package.json 文件中配置 

 在当前文件夹下新建一个 index.js 的文件,为当前项目的主入口文件。

nodejs启动项目web,node 项目,node.js,后端,express

到这里 node 项目基本就创建完成了。

三、创建 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');  
});

在这个示例中,我们创建了一个 express 应用,并设置了一个路由,当访问根路径 / 时,返回字符串 'Hello World!'

在当前文件夹下使用终端命令启动服务

node index.js

使用 postman 测试如下

nodejs启动项目web,node 项目,node.js,后端,express

四、使用中间件 

中间件是指那些在处理 HTTP 请求和响应周期中的某个特定阶段执行代码的函数。这些函数可以执行各种任务,例如解析请求体、验证身份、记录日志、路由处理等。

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 数据  
  const data = req.body;  
  // 处理数据...  
});  
  
app.listen(3000, () => {  
  console.log('Server started on port 3000');  
});

自定义中间件

const express = require('express');  
const app = express();  
  
// 定义一个中间件函数  
function myMiddleware(req, res, next) {  
  console.log('Middleware executed');  
  next(); // 调用 next() 函数以将控制权传递给下一个中间件或路由处理器  
}  
  
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查询字符串中的参数对象。
req.query

// 包含HTTP请求头的对象。
req.headers

// 包含在POST请求中的请求主体的对象。需要使用body-parser中间件才能访问。
req.body

// 包含路由参数的对象。例如,对于路径/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 响应的状态码、响应头和响应主体。

// HTTP 响应的状态码,表示请求的处理结果。例如,200 表示成功,404 表示找不到资源。
res.status(code)

//设置 HTTP 响应的响应头。name 参数是响应头的名称,value 参数是响应头的值。
res.setHeader(name, value)

//获取 HTTP 响应的响应头。name 参数是响应头的名称。
res.getHeader(name)

//移除 HTTP 响应的响应头。name 参数是响应头的名称。
res.removeHeader(name)

//设置一个 HTTP cookie,并将值存储在客户端上。
res.cookie(name, value)

//设置 HTTP 响应一个 JSON 对象、一个数组或者一个字符串。
res.json(json)

//响应一个字符串、一个数字、一个布尔值或者一个对象。
res.send(body)

//渲染一个视图模板并将结果发送到客户端。
res.render(view, [options], callback)

//将 HTTP 响应标记为附件,通常用于下载功能。filename 参数是可选的,表示要下载的文件名。
res.attachment([filename])

//将指定的文件作为 HTTP 响应发送给客户端。path 参数是文件的路径,options 参数是可选的,用于配置文件的响应选项。
res.sendFile(path[, options])

//将指定的文件作为 HTTP 下载提供给客户端。path 参数是文件的路径,filename 参数是可选的,表示要下载的文件名。
res.download(path[, filename])

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

以上是常见响应方法

六、使用路由(多文件)

创建 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文章来源地址https://www.toymoban.com/news/detail-856579.html

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

const router = require('./router'); // 导入路由器对象  
// 将路由器对象添加到应用程序中
app.use(router); //(访问 localhos/test)
// 将路由器对象添加到应用程序中(加入自定义统一前缀)
app.use('/api',router); //(访问 localhost/api/test)
  
app.listen(3000, function() {  
  console.log('Server is running on port 3000');  
});

到了这里,关于node.js 如何搭建一个 Web 服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小沐学Web】Node.js搭建HTTPS 服务器

    HTTPS是什么?HTTPS是基于TLS/SSL的HTTP协议。 HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存

    2024年02月11日
    浏览(32)
  • 使用Node.js手撸一个建静态Web服务器,内部CV指南

    文章里有全部代码,也可以积分下载 操作步骤如上图 文章结束 话说这个键盘真漂亮~~ 1.1 静态Web服务器概念 我们通常称 静态Web服务器 为 静态网站 ,其主要特征就是服务器上的所有内容都是现成的,不需要后端做额外的处理。当我们向静态服务器发送网页请求时,服务器只

    2023年04月08日
    浏览(28)
  • 使用Node.js服务搭建本地web网页小游戏并实现远程访问

    Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架。 Node.js自带运行时环境可在Javascript脚本的基础上可以解释和执行(这类似于JVM的Java字节码)。这个运行时允许在浏览器以外的任何机器上执行JavaScript代码。由于这种运行时在Node.js上,所以JavaScript现在可以在服务

    2024年02月04日
    浏览(27)
  • 教你如何使用Nodejs搭建HTTP web服务器并发布上线公网

    转载自内网穿透工具的文章:使用Nodejs搭建HTTP服务,并实现公网远程访问「内网穿透」 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation(原为 Node.js Foundation,已与 JS Foundation 合并)持有和维护,亦为 Linux 基金会的项目。Node.js

    2024年02月05日
    浏览(33)
  • 如何快速用node在本地搭建一个服务器

    众所周知, 服务器是通过安装特殊的软件(或者运行特殊的代码)来提供网络服务的机器 。那么我们的电脑可不可以弄成一个服务器,来供他人访问呢? 答案是可以的,这里我们需要安装一下 node.js 这个软件。传送门:Node.js 中文网 下载好后按住Win + R 运行cmd小黑窗,输入

    2024年02月04日
    浏览(24)
  • 初级 - 如何搭建一个Java Web项目 - 记录

    Intellij IDEA 一般可以通过两种方式创建 Spring Boot 项目: 使用 Maven 创建 使用 Spring Initializr 创建 Tips: 标题选项后的 感叹号 ! 的是重点配置 这里笔者选择的是 2.x 版本的 Spring Boot,不勾选 Download pre-built … 1. 取消download pre-built shared indexes自动下载 Developer Tools 选项 ! 1. Spring

    2024年02月07日
    浏览(28)
  • 【NodeJs】使用Express框架快速搭建一个web网站

    如果电脑有安装使用Nodejs,用得次数少的话,忘了怎么弄,可以看看这个文章,按照步骤,能快速搭建一个web网站服务器, 首先,你需要保证电脑系统有安装了Node.js,然后可以用VsCode开发工具,新建一个项目文件夹, 如果你是新手,应该知道,创建nodejs项目会依赖npm, 在项

    2024年02月03日
    浏览(31)
  • nodejs-websocket之简单利用node搭建服务器

    一、 需要安装 node.js 通过npm 安装 webSocket包 npm install websocket 二、编写服务端 这段代码是一个使用Node.js的websocket库(nodejs-websocket)创建的服务器,监听端口3000。以下是对代码的简要解释: 引入所需的websocket模块: const ws = require(\\\'nodejs-websocket\\\') 设置服务器端口号: const PORT =

    2024年02月07日
    浏览(25)
  • 如何开发和搭建一个优质的Web3.0/区块链项目?

    在区块链世界和 加密领域 中 、Web3 绝对算得上是一个耀眼的明星了,现在的风头明显盖过前两位老大哥了。 相信许多人也都想尝试熟悉或者参与区块链,加密领域和 Wed3之中,今天我们就来谈谈如何以软件开发的角度,来搭建一个优质的区块链相关项目。 如何创建一个优质

    2024年01月16日
    浏览(44)
  • 快速入门 NodeJS 之『搭建Web服务器』(搭建个人博客相关)

    1.创建一个空文件夹,在vscode中打开 2.开启package文件,因为需要用到npm包           npm init -y  3.创建bin文件夹,也就是程序运行最开始访问的文件夹  4.www.js创建服务器        将回调函数单独抽离出来,放在根目录文件app.js  5.启动服务器        5.1启动前,将package.json中

    2024年02月05日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包