Javascript Expressjs-如何获取'/';每个请求的路径?

Javascript Expressjs-如何获取'/';每个请求的路径?,javascript,node.js,express,routes,Javascript,Node.js,Express,Routes,通过使用ExpressJs构建应用程序,用户现在可以使用localhost:5000/user/12345请求用户配置文件 然后,服务器按如下方式处理它: app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'index.html')); }); 问题是Express为所有要发送的文件选择了(错误的)“/user”路径: GET /user/client/css/fonts/font-awesome.min

通过使用ExpressJs构建应用程序,用户现在可以使用localhost:5000/user/12345请求用户配置文件

然后,服务器按如下方式处理它:

app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'index.html'));
});
问题是Express为所有要发送的文件选择了(错误的)“/user”路径:

GET /user/client/css/fonts/font-awesome.min.css 304 1076.704 ms - -
我如何保持“/”路线?像这样:

GET /client/css/fonts/font-awesome.min.css 304 1076.704 ms - -

在定义路由之前使用此选项

app.use(express.static(path.join(__dirname, 'public'))); 

在定义路由之前使用此选项

app.use(express.static(path.join(__dirname, 'public'))); 

为了请求特定的用户配置文件,必须沿特定路径发送用户id。如果您使用*的话,所有对资源的请求都将由nodejs以您编写的特定端点进行响应

使用以下内容代替您现在使用的内容:

app.get('/user/:id', function(req, res) {

    // access the id with req.params.id;
    res.sendFile(path.join(__dirname, 'index.html'));
});

为了请求特定的用户配置文件,必须沿特定路径发送用户id。如果您使用*的话,所有对资源的请求都将由nodejs以您编写的特定端点进行响应

使用以下内容代替您现在使用的内容:

app.get('/user/:id', function(req, res) {

    // access the id with req.params.id;
    res.sendFile(path.join(__dirname, 'index.html'));
});

我仍然有错误的路径来提供其他文件(css…):GET/user/client/css/font/font-awesome.min.cs在您的html中,该资源的src是什么?我所有的资源都在/client中。不是/用户/客户端。所以我只想删除所有嵌套路由(参数除外):在这种情况下,我需要删除“/user”。顺便说一句,这是一个单页应用程序,使用这种路由使其更模块化。您应该将其放在路由定义的应用程序之前。使用(express.static(path.join(u dirname,'public'));我仍然有错误的路径来提供其他文件(css…):GET/user/client/css/font/font-awesome.min.cs在您的html中,该资源的src是什么?我所有的资源都在/client中。不是/用户/客户端。所以我只想删除所有嵌套路由(参数除外):在这种情况下,我需要删除“/user”。顺便说一句,这是一个单页应用程序,使用这种路由使其更模块化。您应该将其放在路由定义的应用程序之前。使用(express.static(path.join(u dirname,'public'));我已经写过了。我在客户端遇到了以下错误:资源被解释为样式表,但使用MIME类型text/html:“”传输。通过添加到html的头部解决了此问题。已经编写了此错误。我在客户端遇到此错误:资源被解释为样式表,但使用MIME类型text/html:“”传输。通过添加到html的头部解决了此问题。