javascript - 如何在网站的 url 中“创建”不同的路径,并为每个路径调用不同的“状态”?
问题描述
我用 javascript 写了一个程序,你可以用它来画,用画布。现在我用nodejs创建了一个网络服务器并尝试实现,你可以在这个网站上画一些东西,对于这个特定的图片,URL会创建一个额外的路径,你可以调用它,你可以在你上次停止的同一点到达图片时间绘图。这是代码:
var http = require("http");
var fs = require('fs');
http.createServer(function (request, response) {
console.log(request.method, request.url);
console.log(" ", request.url.substring(1));
if (request.url === '/') request.url = '/draw.html';
fs.readFile(request.url.substring(1), function (err, data) {
console.log("Datei lesen", err);
response.writeHead(200, {'Content-Type': 'text/html'});
if (err) {
response.write("Kann nicht geladen werden: "+request.url);
} else {
response.write(data);
}
response.end();
});
}).listen(8081);
这只是给出一个“页面”。我正在寻找类似http://127.0.0.1:8081/image123/draw.html → 的内容,然后您会看到 ID 为 123 的图片。因此,您可以为每张图片创建不同的路径,这样您就可以访问每张图片。
也许是这样的:
if (url.includes('bild') && /[0-9]/.test(url)) {
request.url = ???;
}
谢谢!
解决方案
为此,您需要像 Express JS 这样的中间件。在 Express JS 中,您可以使用参数化查询:
const express = require("express");
app = express();
app.get("/:image/draw.html", (req, res) => {
console.log(req.params.image); // image123
// So, if you need that 123, then you can do:
console.log(parseInt(req.params.image.replace("image", ""), 10)); // 123
});
上面函数的原因replace()
是它只替换一次:
» "image123image".replace("image", "");
« "123image"
推荐阅读
- scala - spark-使用scala将数组列的所有元素分组
- laravel - 使用 Laravel 控制器生成 UUID
- r - rlang - 创建带有卷曲的字符串以供稍后评估
- flutter - 如何让图像适合卡内
- python - 在不离开工作目录的情况下更改服务器中的目录
- java - 未找到 LWJGLException?
- android - Flutter,url_launcher 在调试模式下工作,但在 apk 中不工作
- elasticsearch - Spring data elasticsearch,通过Id获取列表中的所有文档
- android - 如何在 Powershell 中的别名后运行其他命令?
- html - 是否可以在为其父母设计样式时避免使用某些样式?