做了好多次项目,一直都是自己前端把请求和渲染都写好了,但是后端要等到很久才能写好,所以自己搭了个node服务器来测试自己的请求渲染是否有问题,每次vue打包完就把打包后的文件扔到这个服务器下
因为只是测试用的,所以我做的很简单,只是匹配前端发送来的数据然后返回一些静态数据以供看渲染效果
看完整代码请直接滑到底部
使用serve-static搭建静态服务器
serve-static可以快速搭建静态服务器,代码在其npmjs上和淘宝镜像上都有,我这里就直接写了
const finalhandler = require('finalhandler')
const http = require('http')
const serveStatic = require('serve-static')
// 将test文件夹下的内容放到服务器中
var serve = serveStatic('test', {
'index': ['index.html', 'index.htm'] })
var server = http.createServer(function onRequest (req, res) {
serve(req, res, finalhandler(req, res))
})
server.listen(3000)
获取请求的内容
要对前端发起的请求做处理,首先我们需要拿到前端请求的url,根据请求url不同做不同的处理,此外,由于还有参数,所以我们需要获取参数
使用url.parse(req.url)
来获取请求内容,打印一下下面这个地址的请求内容
‘/request1?a=1’
const url = require('url')
var server = http.createServer(function onRequest (req, res) {
console.log('url', url.parse(req.url))
serve(req, res, finalhandler(req, res))
})
打印出来可以看到下图
所以我们需要的就是query和pathname
因为query还需要做一些处理,我习惯将其处理成对象,所以写了一个方法来将这个字符串转换成对象
// 将传递过来的参数字符串转为对象
function turnObj(query){
if(query===null)
return {
}
let arr=query.split('&')
let obj={
}
arr