Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js->;未定义res.sendFile()_Javascript_Mysql_Node.js - Fatal编程技术网

Javascript node.js->;未定义res.sendFile()

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({

所以我在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({
    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路径解释。