首先init一个项目,安装express,安装request模块,新建一个js文件,main.js:
var express = require('express')
var app = express()
var request = require('request')
var fs = require("fs")
app.use(express.static("static"))
app.get('/login', (req, res) =>{
request('https://blog.csdn.net/qwe502763576/rss/list', (err, response, body) => {
// console.log(err);
// console.log(response && response.statusCode);
// console.log(body);
fs.writeFile("static/static_files/rss/rss.xml", body, {}, (err) => {
console.log(err)
})
res.send(body)
})
})
app.listen(8888, (err) => {
console.log("服务已启动")
})
引入了fs模块将获取的数据写入静态资源文件static下的static_files/rss目录下,并命名rss.xml,同事也将获取的数据send给了前端。
目录结构:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="box"></div>
<button onclick="gologin()">login</button>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
console.log($)
function gologin() {
$.ajax({
type: "GET",
url: "/login",
dataType: 'text',
success: function(msg){
console.log(msg)
location.assign('http://localhost:8888/static_files/rss/rss.xml')
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log(errorThrown)
}
});
}
</script>
</body>
</html>
这里用jq的$.ajax接收到了获取的数据,但是没有对其做操作,而是在获取到数据后直接跳转到访问静态资源目录下的static_files/rss/rss.xml文件,这时跳转过去并不能看到xml文件内容,页面是空白的,打开控制台可以看到一个xsl文件的404错误,原因:在xml文件中引用了xsl样式:
但是我并没有这个rss.xsl文件怎么办呢?你会自己写吗,自己写也行,不过我对xsl语法不是太熟,我就试着在csdn官网找,根据它引入的路径,然后在地址栏输入https://blog.csdn.net/static_files/rss/rss.xsl果然,浏览器自动下载了该文件,然后复制到rss目录下就可以正常打开了,并且还可以在xsl中的style标签中自己修改、新增一些样式来美化xml在页面的展示:
补充:当设置了静态资源路径( app.use(express.static("static")) )时,服务器根目录默认就会打开该路径下的index.html文件,如果有的话。