Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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 使用html获取express中未调用的路由_Javascript_Node.js_Express - Fatal编程技术网

Javascript 使用html获取express中未调用的路由

Javascript 使用html获取express中未调用的路由,javascript,node.js,express,Javascript,Node.js,Express,我有一个非常简单的应用程序,所以我不认为我需要一个完整的前端模板,比如angular,我也不想使用Jade app.get('*', function(req, res) { res.sendFile(__dirname + '/public/index.html'); }); 基本上我返回一个html文件,我可以调用其他html文件,比如 login.html signup.html 但让我困惑的是,我的路线没有被命名。例如,我向/login发送一个GET请求,但没有“login GE

我有一个非常简单的应用程序,所以我不认为我需要一个完整的前端模板,比如angular,我也不想使用Jade

app.get('*', function(req, res) {
  res.sendFile(__dirname + '/public/index.html');
});
基本上我返回一个html文件,我可以调用其他html文件,比如

login.html
signup.html
但让我困惑的是,我的路线没有被命名。例如,我向/login发送一个GET请求,但没有“login GET”输出

//编辑:即使使用req、res,我也可以删除下面的函数,并且仍然可以接收index.html

app.get('/login',function(req,res){ 
  console.log("LOGIN GET")
  res.sendFile( path.join( __dirname, 'public', 'login.html' ));    
});

如果未调用我的路由,如何将login.html发送到客户端?

路由处理程序缺少req和res参数。对于静态文件,您也可以按照


你应该使用快速路由器

var router = express.Router();
然后,你就可以

router.get("/login",function(req,res){
  console.log("LOGIN GET")
  res.sendFile( path.join( __dirname, 'public', 'login.html' )); 
});

我猜你是先宣布了“一网打尽”的路线:

app.get('*', function(req, res) {
  res.sendFile(__dirname + '/public/index.html');
});

app.get('/login',function(req,res){ 
  console.log("LOGIN GET")
  res.sendFile( path.join( __dirname, 'public', 'login.html' ));    
});
因为
/login
匹配
*
,Express也将使用第一条路由来处理
/login
的请求。通常,使用Express时,您需要首先声明更具体的路线:

app.get('/login',function(req,res){ 
  console.log("LOGIN GET")
  res.sendFile( path.join( __dirname, 'public', 'login.html' ));    
});

app.get('*', function(req, res) {
  res.sendFile(__dirname + '/public/index.html');
});
其他HTML文件工作的原因是您可能也在使用
express.static()
(但没有显示它)

app.get('/login',function(req,res){ 
  console.log("LOGIN GET")
  res.sendFile( path.join( __dirname, 'public', 'login.html' ));    
});

app.get('*', function(req, res) {
  res.sendFile(__dirname + '/public/index.html');
});