所以我将node.js与mySQL一起使用。当我启动服务器时,一切正常,但是当我访问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);
答案 0 :(得分:0)
根据您的版本,未配置该功能(功能)。
清理您的软件包,首先将 express 版本更改为4.15.2
,然后删除您的node_modules文件夹。然后是npm install
。
您应该启用静态文件服务。
app.use(express.static('public'))
然后在单词后你可以使用res.reder('index'); 虽然你必须先设置视图引擎。这是更多的信息。
<强> app.render(视图)强>
通过回调函数返回视图的呈现HTML。它接受一个可选参数,该参数是包含视图局部变量的对象。它就像res.render(),除了它不能自己将渲染的视图发送给客户端。
要设置您的视图引擎,请按照
进行操作// set the view engine to ejs
app.set('view engine', 'ejs');
答案 1 :(得分:0)
假设它是一个静态文件,你也可以这样做;
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