Nodejs后端框架搭建(express)

Nodejs后端框架搭建(express)文章目录1.node简介2.Express简介3.项目初始化4.Express三大基础概念(扩展)1.node简介Node是一个基于V8引擎的Javascript运行环境,它使得Javascript可以运行在服务端,直接与操作系统进行交互,与文件控制、网络交互、进程控制等2.Express简介express是一个轻量级的NodeWeb服务端框架,同样是一个人气超高的项目,它可以帮助我们快速搭建基于Node的Web应用3.项目初始化1.创建项目首先你得创

大家好,又见面了,我是你们的朋友全栈君。

1.node简介

Node 是一个基于 V8 引擎的 Javascript 运行环境,它使得 Javascript 可以运行在服务端,直接与操作系统进行交互,与文件控制、网络交互、进程控制等

2.Express 简介

express 是一个轻量级的 Node Web 服务端框架,同样是一个人气超高的项目,它可以帮助我们快速搭建基于 Node 的 Web 应用

3.项目初始化

1.创建项目
首先你得创建项目的根目录,然后输入下面命令初始化项目:

npm init -y

2.安装依赖

npm i express --save

3.创建app.js

const express = require('express')

// 创建 express 应用
const app = express()

// 监听 / 路径的 get 请求
app.get('/', function(req, res) { 
   
  res.send('hello node')
})

// 使 express 监听 5000 端口号发起的 http 请求
const server = app.listen(5000, function() { 
   
	console.log("服务器已启动,监听5000端口");
})

4.启动服务器

	node app.js

此时,在浏览器输入localhost:5000即可访问服务器。

4.Express三大基础概念(扩展)

1.中间件

中间件是一个函数,在请求和响应周期中被顺序调用

实例:

const myLogger = function(req, res, next) { 
   
  console.log('myLogger')
  next()
}

app.use(myLogger)

提示:中间件需要在响应结束前被调用。

2.路由

应用如何响应请求的一种规则

示例:
1.响应 / 路径的 get 请求:

app.get('/', function(req, res) { 
   
  res.send('hello node')
})

2.响应 / 路径的 post 请求:

app.post('/', function(req, res) { 
   
  res.send('hello node')
})

规则主要分两部分:

请求方法:get、post…
请求的路径:/、/user、/.*fly$/…

3.异常处理:

通过自定义异常处理中间件处理请求中产生的异常

app.get('/', function(req, res) { 
   
  throw new Error('something has error...')
})

const errorHandler = function (err, req, res, next) { 
   
  console.log('errorHandler...')
  res.status(500)
  res.send('down...')
}

app.use(errorHandler)

使用时需要注意两点:

  • 参数一个都不能少,否则会被视为普通的中间件
  • 中间件需要在请求之后引用

如果想要学习更多关于nodejs写接口可以看我 这篇博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142744.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql批量新增数据_批量更新sql语句

    mysql批量新增数据_批量更新sql语句背景业务中存在唯一索引,插入的批量数据中可能存在已有数据,此时可用一条sql快速完成,无需写业务判断。原始sql#其中stock_id,date为唯一所以insertintomart_kline(stock_id,red_red_rate,red_green_rate,date)values(‘stockId1′,0.5,1.0,’2021-12-19’), (‘stockId2′,0.51,1.2,’2021-12-20’), (‘stockId3’,0

    2022年9月28日
    2
  • ssh公私钥登录方式设置

    ssh公私钥登录方式设置

    2022年1月30日
    45
  • 匈牙利算法

    匈牙利算法

    2021年12月15日
    51
  • NTP时间服务器

    1.NTP简介NTP(NetworkTimeProtocol网络时间协议)是一个用于同步计算机时钟的网络协议。它可以使计算机与其他服务器或时钟源进行时间同步,进行高精度的时间校正。简而言之,NTP就是使一台或多台服务器(客户端)与时间服务器(服务端)之间进行时间同步(即客户端与服务端的时间同步),以保证时间的统一性2.NTP服务器架设   上面提到客户端与服务端的时间

    2022年4月6日
    82
  • LoadLibrary失败

    LoadLibrary失败LoadLibrary失败 今天同事遇到一个问题,经高手指点,完美解决。不过解决方法总是感觉有点不妥,不知道有没有其它方法。 正常情况,在一个exe中LoadLibrary(DLL1)可以获得正常的结果; 但是,当我们需要load的DLL1如果调用了其它的DLL2,那么我们就会得到一个结果:Theprogramcantstartbecause****.dl

    2022年7月26日
    21
  • Android代码混淆失败

    Android代码混淆失败Readinginput… Readingprogramjar[/data/rdm/projects/7060/bin/proguard/original.jar] Readingprogramjar[/data/rdm/projects/7060/libs/android-support-v4.jar] Readinglibraryjar[/data/rdm/

    2022年5月29日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号