node.js(2):使用Express创建Web服务器

  Express是一个基于Node.js开发出来的专门用来创建Web服务器的框架。
  它的作用与Node.js的内置http模块类似,或者说它就是基于node.js内置http模块来开发的,它与http模块的关系类似于Jquery与WebAPI的关系,但它比http模块在功能上更为高效和强大,也更方便开发者使用。
  使用Express可以开发Web网站或者提供API接口的服务器。
  使用Node.js做开发,少不了安装一些第三方的开发包。之前我使用的网络有代理,一直安装不上第三方包,昨天安装了一个无线网卡,使用手机流量直接上外网,安装就顺畅了。

REM 切换npm下载包的镜像源为淘宝的npm服务器。
npm config set registry=https://registry.npm.taobao.org/
REM 查看镜像源设置:
npm config get registry

  新建一个目录,在该目录下(cmd命令窗口)执行初始化命令:
  npm init -y
  即可在该目录下生成一个package.json文件,然后再下载其他的第三方包。
  Express的官网地址:http://www.expressjs.com.cn。
  安装:npm i express@4.17.2
  js程序文件是通过node程序来加载、启动运行的,如果更改程序文件内容,需要我们人为中断运行的程序,然后再次调用node来执行新的程序。
  而nodemon(第三方的开发包)可以帮助我们来去掉这些麻烦,使用它来运行我们写的程序后,我们更改了程序内容,保存后nodemon会自动中断旧的程序后重启最新的程序,这样就保证了最新的内容被执行。
  安装:npm i -g nodemon

  1、做静态资源发布的网站

//导入express 
const express=require('express')
//创建web服务器
const app=express()

//发布当前目录下OASoft目录的所有内容,通过http://127.0.0.1:9019/download/来访问
//download相当于虚拟目录名称
app.use('/download',express.static('./OASoft'))
//发布当前目录下workdocs目录的所有内容,通过http://127.0.0.1:9019/doc/来访问
//doc相当于虚拟目录名称
app.use('/doc',express.static('./workdocs'))

//启动web服务器
app.listen(9019,()={
		console.log('webserver 正在运行......http://127.0.0.1:9019')
})

//运行:
//nodemon useExpress.js

  2、做动态内容发布的服务器
  类似于IIS和Apache的功能,发布网站同时监听来自客户端浏览器的各种请求、响应并返回具体的内容。
  客户端的请求多种多样,在服务器端都有对应的函数来处理,这种关系称之为映射,在Express中称之为路由。
  主文件ZTB_Main.js代码:

//导入express模块
const express=require('express')
//创建Web服务器
const app=express()

//导入路由模块
//自定义模块必须加上路径名,文件后缀可以省略,内置模块和下载的第三方模块不需要加
const ZTB_router=require('./ZTB_router.js')

//注册全局路由模块
app.use('/ZTB',ZTB_router)

//启动web服务器
app.listen(9019,()=>{
	console.log('Web服务器正在运行......')
})

  路由文件ZTB_router.js代码:

//导入express
var express=require('express')
//创建路由对象
var router=express.Router()

router.get('/add',function(req,res){
	//处理增加
	
	//返回结果
	console.log('增加操作')
	res.send('增加操作')
})

router.post('/del',function(req,res){
	//处理删除
	
	//返回结果
	console.log('删除操作')
	res.send('删除操作')
})

//对外导出路由对象
module.exports=router

说明:
1、路由很多,单独写在一个文件里,对外共享路由对象即可,具体步骤:
    ① 创建一个单独的路由处理模块的.js文件;
    ② 导入express并创建路由对象;
    ③ 在路由对象上加载具体的路由及处理函数;
    ④ 对外共享路由对象。
2、路由及处理格式:

  app.get(‘/’,function(req,res){
        res.send(‘这是来自主页的get请求’)
  })
  app.post(‘/’,function(req,res){
        res.send(‘这是来自主页的psot请求’)
  })

  //等价于
  app.get(‘/’,( req , res ) => {
        res.send(‘这是来自主页的get请求’)
  })
  app.post(‘/’,( req , res ) => {
        res.send(‘这是来自主页的psot请求’)
  })

3、主程序引入路由文件,使用app.use注册路由模块即可监听来自网页的请求;

  app.use('/ZTB',ZTB_router),ZTB即为访问前缀。
4、使用ApiPost来测试请求及返回的结果,分别是:
  ① http://127.0.0.1:9019/ZTB/add    (get请求)
  ② http://127.0.0.1:9019/ZTB/del     (post请求)

node.js(2):使用Express创建Web服务器

  ApiPost是一款很方便的前端开发测试工具。

node.js(2):使用Express创建Web服务器

上一篇:hdu-2897-巴什博弈


下一篇:【Maven学习】Nexus私服代理其他第三方的Maven仓库