我正在整合第三方模板,该模板使用Mootools编写幻灯片。 nodejs配置了express和ejs
幻灯片显示的数据来自几个xml文件。例如data.xml。我将data.xml放在公共文件夹中,并将以下代码添加到server.js(主文件)
app.use(express.static(__dirname + '/public'));
app.post('/data.xml', function(req, res){
res.contentType('application/xml');
res.sendFile('/data.xml');
});
不幸的是,这似乎不起作用。如果输入网址,我可以看到该文件 http://localhost:8080/data.xml
但是我在firebug中看到的反应是 “无法POST /data.xml”
我假设Mootools正在尝试使用一些POST方法访问该文件。有关此问题的任何建议吗?
答案 0 :(得分:1)
当您使用sendFile()发送文件时,您需要指向绝对地址检查。请注意我在主文件夹中有data.xml。
您可以使用localhost:8080 / data(不是localhost:8080 / data.xml)访问该文件,并且因为这是一篇帖子,您无法通过浏览器访问它。改用邮差。或者如果您需要在浏览器上访问它,您需要更改协议。
var express = require('express');
var path = require('path');
var app = express();
// you don't need this line!
// app.use(express.static(path.join(__dirname)));
app.post('/data', function(req, res){
res.contentType('application/xml');
res.sendFile(path.join(__dirname , 'data.xml'));
});
var server = app.listen(8080, () => {
console.log('Started listening on 8080');
});