本文介绍Node.js中Web服务器的搭建方法。首先通过原生http模块接收并处理GET、POST等HTTP请求,随后演示如何使用Express框架简化开发。内容涵盖静态文件托管、基于path和Router的路由定义,以及查询参数的解析,帮助开发者快速掌握Node.js后端基础。
Web服务器基础与架构
Web服务器的基础知识
功能:1.接收HTTP请求(get,post,delete,put)2.处理HTTP请求
常见的Web服务器架构通常包含以下组件:
1. Nginx或Apache:负责接收HTTP请求,判断由哪个后端服务处理,并返回请求结果。
2. php-fpm或PHP模块:用于处理动态内容。
常见的请求类型主要分为两类:
1. 请求文件:涉及需要处理的静态资源文件。
2. 执行特定操作:例如用户登录或获取特定数据等业务逻辑。
原生HTTP模块实现
使用Node.js原生http模块创建Web服务器
//引入nodejs的核心模块http
var http = require('http') ;
//创建一个http实例
var reqHandler = function(req,res){
res.end("我全部接受完了") //用来表示已经对响应内容全部接收
}
var web = http.createServer(reqHandler());
web.listen(666)
console.log("http runnibg on http://localhost:666")
运行方式:在命令行中输入node httptest.js即可启动服务。
Express框架应用
使用Express框架创建Web服务器
//引入模块
var express = require("express") ;
var app = express() ;
//通过路由控制响应;
app.get('/',function(req,res){
res.end("mingming love dama")
})
app.listen(666 , function(){
console.log('express is running')
}) ;
其效果与原生实现相同,但代码更为简洁。
静态文件处理
app.use(express.static('./public'))
以./public目录作为静态文件的根路径。
路由配置方法
路由机制
将不同的URL请求分配给对应的处理函数。
实现路由的三种方法:1)path方法 2)Router方式 3)route方法
1. path方法示例
app.get('/test',function(req,res){
res.send("id: "+req.query.id+" password: "+req.query.password);
})
当访问http://localhost:3000/test?id=120&password=11001时,服务器会解析查询参数。
这便是通过path方法设置路由的示例。
2. Router方法示例
var express = require("express") ;
var app = express();
app.use(express.static('./public'))
//引入路由
var router = express.Router() ;
router.use(function log(){
console.log('Time: ', Date.now());
})
//调用路由
router.get('/',function(req,res){
res.send('Birds home page');
})
router.get('/about',function(req,res){
res.send('Birds about page')
})
router.get('/test',function(req,res){
res.send('Birds test page')
})
app.use('/bird',router)
app.listen(3000,function(){
console.log("express is running")
//监听成功得回掉方法
})
这样便完成了路由的定制配置。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。