如何从nodejs服务器

时间:2016-02-04 08:42:26

标签: node.js express ejs

我正在整合第三方模板,该模板使用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方法访问该文件。有关此问题的任何建议吗?

1 个答案:

答案 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');
});