我对Express和nodeJS很陌生。
我正在处理查询字符串和动态网页,并说无法获取ID。
我不知道哪里出了问题。
任何帮助将不胜感激!
const express = require('express');
const app = express();
const port = 3000;
const fs = require('fs');
app.get('/', (req, res) => {
fs.readdir('./data', (err, list) => {
fs.readFile(`data/${req.query.id}`, 'utf8', (err, data)=>{
if(!req.query.id){
req.query.id = "Welcome";
data = "Hello World";
}
res.send(`<html>
<head></head>
<body>
<h1><a href="#">Web<a></h1>
<ul>
${list.map(item=>`<li><a href="/id?=${item}">${item}</a></li>`).join('')}
</ul>
<a href="create">Create</a>
<h2>${req.query.id}</h2>
<p>${data}</p>
</body>
</html>`)
})
})
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
答案 0 :(得分:2)
可能您正在调用“ / id”之类的网址,并尝试获取查询字符串。 为使id作为url上的变量,您必须输入以下路径:
app.get("/:id", (req, res) => {
const id = req.params.id;
})
如果要获取查询字符串,请使用:
app.get("/", (req, res) => {
const id = req.query.id;
})
您需要使用以下呼叫网址:/?id = 1
答案 1 :(得分:0)
我发现..是"/?id=${item}"
,不是"/id?=${item}"