node搭建服务器
# 我们可以用node创建原生的服务器。不用依赖express框架,主要有以下几个步骤
# 1、引入http模块
//http模块是Node中的核心模块,无需下载
let http = require('http');
# 2、创建一个服务对象
let server = http.createServer((request,response)=>{
response.end('hello,node');
})
//request请求对象 ------- 客户端发过的数据,都在request里面
//response响应对象 ------- 将要交给客户端的数据,都在response这里面
# 3、绑定监听
server.listen(3000,(err)=>{
if(!err){
console.log('服务器启动成功了');
}else{
console.log(err);
}
})
# 完整代码:
let http = require('http');
let querystring = require('querystring'); //require身上有一个属性queryString(查询字符串)
let server = http.createServer((request,response)=>{
let param = request.url.split('?')[1]; //截取问号之后的字符串
let paramObj = querystring.parse(param)
response.setHeader('content-type','text/html;charset=utf-8'); //设置响应头
response.end('hello,node');
});
server.listen(3000,(err)=>{
if(!err){
console.log('服务器启动成功');
}else{
console.log(err);
}
})
# 总结:node原生的服务器对post请求不太友好,并且需要手动的解析get请求,使用起来非常的不方便,所以现在经常使用express框架来搭建node的服务端
# Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助快速创建各种 Web
# 1、引入express模块(库)
let express = require('express');
# 2、创建app应用对象
let app = express();
# 3、设置路由(对请求的网址进行分类处理)
- get 请求路由设置
设置GET请求:
·request对象上的方法:
request.query 获取get请求查询字符串的参数,拿到的是一个对象
request.params 获取get请求参数路由的参数,拿到的是一个对象
request.body 获取post请求体,拿到的是一个对象
request.get(xxxx) 获取请求头中指定key对应的value
· response对象上的方法:
response.send() 给浏览器做出一个响应
response.end() 给浏览器做出一个响应(不会自动追加响应头)
response.download() 告诉浏览器下载一个文件(相对路径)
response.sendFile() 给浏览器发送一个文件(绝对路径)
response.redirect() 重定向到一个新的地址(url)
response.set(header,value) 自定义响应头内容
response.get() 获取响应头指定key对应的value
res.status(code) 设置响应状态码
-----------------------------------------------------------------------------------------------
app.get('/',(request,response)=>{
request.query //获取GET请求的查询字符串参
response.send('this is get'); //用户通过浏览器输入网址请求页面的方式是GET请求
});
app.get('/test',(request,response)=>{
console.log(request.query);
response.send('this is back of get');
});
- post请求路由设置
由于post请求的请求体无法直接的获取参数,所以我们需要在引入app之后,配置中间件:
app.use(express.urlencoded({extended:true}))
就能够通过request.body来获取
app.post('/demo/test',(request,response)=>{
console.log(request.body)
response.send('服务器给浏览器回应了');
});
# 4、绑定监听
app.listen(3000,(err)=>{
if(!err){
console.log(‘服务器连接成功’);
}else{
console.log(err);
}
});