gpt4 book ai didi

javascript - NodeJS Express 上的路由

转载 作者:行者123 更新时间:2023-11-30 14:24:06 24 4
gpt4 key购买 nike

我正在用Express用NodeJS开发一个服务器,但是web结构有点复杂(我没有做,也改不了)。

流程是这样的:

  1. Node 服务器收到类似https://localhost/**{id}**的调用.
  2. 收到的 ID 是所有文件(html、js、css、等)被存储。默认情况下,它返回 index.html .
  3. 任何网站的文件结构都没有严格的逻辑,这意味着同一级别的浏览量可能会更多 index.html是或在文件夹中,无论客户希望在何处开发它们。

我遇到的问题是如何正确传送文件。由于我仅在调用索引时收到 ID,因此我不知道如何路由 <a href="view1.html">View 1</a> 之类的链接。甚至 javascript 文件调用 <script src='scripts/someGreatFunctions.js'></script>因为它们也可能位于根目录或文件夹中(甚至同时存在这两个东西)。

我的 server.js文件:

const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();

const config = require('./config');

var webId;

var options = {
key: fs.readFileSync(config.paths.certificate.key),
cert: fs.readFileSync(config.paths.certificate.crt),
requestCert: false,
rejectUnauthorized: false
};

app.use(function (req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("Access-Control-Allow-Methods", "GET, HEAD, OPTIONS, POST, PUT");
res.setHeader("Access-Control-Allow-Headers", "Accept, Access-Control-Allow-Headers, Access-Control-Request-Headers, Access-Control-Request-Method, Authorization, Content-Type, Origin, X-Requested-With");
next();
});

app.get('/scripts/:script', function(req, res) {
res.sendFile(req.params.script, {root: config.paths.webs + webId + '/scripts'});
});

app.get('/:script.js', function(req, res) {
res.sendFile(req.params.script + '.js', {root: config.paths.webs});
});

// This routes correctly the index
app.get('/:id', function(req, res) {
webId = req.params.id;
res.sendFile('index.html', {root: config.paths.webs + webId});
});

// This DID NOT work
app.get('/:id/:page', function(req, res) {
//Some code here...
});

https.createServer(options, app).listen(443, function() {
console.log("NodeJS secure server started at port 443");
});

最佳答案

我也处于学习阶段。希望这会有所帮助。

app.get('/test/:id/:page', function(req, res, next) {
let id = req.params.id;
let page = req.params.page;
console.log('The id: ' + id);
console.log('The page: ' + page);
});

关于javascript - NodeJS Express 上的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com