Javascript 如何在';公共';快车

Javascript 如何在';公共';快车,javascript,express,Javascript,Express,我正在尝试在express中为我的公用文件夹中的登录页提供服务,但到目前为止我无法这样做。我试着沿着这条路走,但我不知道为什么不走。我想要的是,我可以在回调中有更多的代码,但由于现在的方式,我可以做到这一点,当我试图使回调成为一个完整的函数时,它也不会工作 My folder structure - root - server - server.js - public - login - index.html const express=require('

我正在尝试在express中为我的公用文件夹中的登录页提供服务,但到目前为止我无法这样做。我试着沿着这条路走,但我不知道为什么不走。我想要的是,我可以在回调中有更多的代码,但由于现在的方式,我可以做到这一点,当我试图使回调成为一个完整的函数时,它也不会工作

My folder structure
- root
  - server
    - server.js
  - public
    - login
      - index.html
const express=require('express');
常量app=express();
const path=require('path');
app.listen(4000);
console.log('server started\n');
app.get('/',()=>app.use(express.static(u dirname+'/public/login'));
//我想要什么
app.get('/',()=>{
//送达文件

});您应该在服务器启动时直接装载静态文件,而不是在第一个请求到达后,因此此行:

app.get('/', () => app.use(express.static(__dirname + '/public/login')));
必须是:

app.use(express.static(__dirname + '/../public/login'));
当代码在
/server/
目录中启动时,您还必须进入一个文件夹,这可以通过
/../
完成

如果您只想从公用文件夹而不是其中的所有文件中提供index.html,那么您可以做的是

app.get('/', (req, res) => res.sendFile('index.html', { root: __dirname + '/../public/login'));

将路径更改为uuDirName+“../public”,很遗憾,这不起作用,没有uuDirName,在您提问之前,它不会重复您的搜索请求。看,所有这些帖子都和你的相似,它们很好地回答了你的问题。贴子1:,贴子2:,贴子3:,贴子4:,贴子5:@NAVIN所有贴子都与这个问题无关?!此外,您标记的副本与此无关。在浪费每个人的时间之前,请仔细阅读问题。它不起作用,我希望它也能作为回调函数app.get('/',()=>{app.use(express.static(u dirname+'../public');})请参阅。。。静态路由服务于静态文件,而不是侦听端点请求(端点请求不是资源)。因此,如果您想列出请求到主路径,您实际应该做的是使用res.sendFile或res.send处理一些数据静态文件,请求以文件名和扩展名结尾。您可以尝试编辑部分吗?请记住,您应该有正确的_dirname路径,也就是说,您应该在命令行上运行server.js文件form server/directory,稍后我将尝试它,忙于其他项目