jLy*_*ynx 6 javascript iis node.js
我无法使用node.js发送HTML文件
所以首先这是我得到的错误
Application has thrown an uncaught exception and is terminated:
TypeError: res.sendFile is not a function
at Server.<anonymous> (C:\Program Files\iisnode\www\test\app.js:4:6)
at emitTwo (events.js:88:13)
at Server.emit (events.js:173:7)
at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:529:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:89:23)
Run Code Online (Sandbox Code Playgroud)
我的app.js代码是
var http = require('http');
http.createServer(function (req, res) {
res.sendFile('test.html', { root: __dirname });
}).listen(process.env.PORT);
Run Code Online (Sandbox Code Playgroud)
如果我遗漏了一些简单的东西,我很抱歉,因为这是我制作的第一个node.js程序
小智 22
这个具体问题已经得到解答,但值得一提的是,如果您使用的是"快速"版本3.x,修复程序可以像切换res.sendFile('path-to-file');到res.sendfile('path-to-file');
这是我的问题.因此,您可以升级快速版本(或)更改小写的方法名称以解决此问题.
Toa*_*ien 11
sendFile仅在Express模块中.
试试这个代码
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.sendFile('path-to-file');
});
app.listen(PORT);
Run Code Online (Sandbox Code Playgroud)
借助 Toanalien 的(正确)答案,您可以通过以下方式完成相同的操作:
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (req, res) {
// maybe test for existence here using fs.stat
res.writeHead(200, {"Content-Type": "text/html"});
fs.createReadStream(path.resolve(__dirname, 'test.html'))
.pipe(res);
}).listen(process.env.PORT || '3000'); // provide a default
Run Code Online (Sandbox Code Playgroud)
请参阅http.ServerResponse和fs.createReadStream。
小智 5
我有同样的问题,这对我有用。希望它能起作用。
function(req,res){};
Run Code Online (Sandbox Code Playgroud)