Javascript node.js->;未定义res.sendFile()
所以我在mySQL中使用node.js。当我启动服务器时,一切正常,但是当我访问127.0.0.1:3000时,它说res.sendFile()没有定义。我想将索引html文件作为服务器的响应发送,但它不起作用。有什么问题Javascript node.js->;未定义res.sendFile(),javascript,mysql,node.js,Javascript,Mysql,Node.js,所以我在mySQL中使用node.js。当我启动服务器时,一切正常,但是当我访问127.0.0.1:3000时,它说res.sendFile()没有定义。我想将索引html文件作为服务器的响应发送,但它不起作用。有什么问题 var app = require('express')(); var mysql = require('mysql'); var bodyParser = require('body-parser'); var db = mysql.createConnection({
var app = require('express')();
var mysql = require('mysql');
var bodyParser = require('body-parser');
var db = mysql.createConnection({
host : "127.0.0.1",
user : "root",
password : "",
database : "user_data",
port : 3306
});
db.connect();
app.get('/',function(req, res){
res.sendFile(__dirname+'/index.html');
});
app.listen(3000);
根据您的版本,不提供该功能 清理您的软件包,首先将express版本更改为
4.15.2
,然后删除节点模块文件夹。然后npm安装
您应该启用静态文件服务
app.use(express.static('public'))
然后在单词之后,你可以使用res.reder('index');
虽然您必须先设置视图引擎,但这里没有更多信息
应用程序渲染(视图)
通过回调函数返回视图的呈现HTML。它接受一个可选参数,该参数是一个包含视图局部变量的对象。它与res.render()类似,只是它不能单独将渲染视图发送到客户端
要设置视图引擎,请执行以下操作:
// set the view engine to ejs
app.set('view engine', 'ejs');
假设它是一个静态文件,您也可以这样做
app.use('/', express.static(__dirname + '/../public'));
//public being the folder containing your index.html.
//Example of Path;
//__dirname + '/../public'
__dirname = start in same folder as server.js.
/../ = go one folder back (in this case, to ROOT.
/public = enter the "public" folder, this is where our index.html is.
ROOT
Server
server.js
Public
css
images
index.html
etc
试试res.json('hello');告诉我您看到了什么?我看到了“您好”:)express?sendFile的哪个版本包含每个版本
res。express v4.8.0及以后版本支持sendFile()
。请尝试一个绝对路径,该路径应为您提供最新版本的express,如@4castle所述,sendFile仅在版本4中受支持。您还应使用静态文件。您在第一段中所说的内容与他们收到的错误不匹配。他们没有收到错误,因为res.sendFile()
找不到文件,他们收到的错误是.sendFile()
方法没有定义。在去年的时间里,它对我来说工作得非常好。更新了WITH路径解释。