nodejs静态内容不使用sendFile

时间:2016-02-26 18:58:47

标签: node.js

如何在不使用sendFile的情况下使nodejs提供静态内容? sendFile的问题是它会在您从一个页面导航到另一个页面时打开另一个选项卡,这是一个片段......

app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/verify', function(request, response) {
  var oneTimeCode = request.body.oneTimeCode;
  var timeEntry = Date.now();
  if (oneTimeCode == 'abc123') {      
    response.sendFile('/home/ubuntu/form.html');
  } else {......

我可以用这样的东西代替sendFile吗?

app.use(express.static(__dirname + '/home/ubuntu/form.html'));

1 个答案:

答案 0 :(得分:1)

express.static不是提供单个文件的好选择。  它旨在使用文件名解析的URL来提供文件夹内的所有静态资源,如here所述。

sendFile()不应该对打开新标签负责。你可能在anchor html元素上有一个错误的目标吗?

如果您想在不使用sendFile()的情况下发送静态内容,则可以随时打开静态资产文件并通过响应流传输内容。这就是sendFile()的作用。您可以查看source code并从中获取想法。