无法获取/ ID(querystring)Express,nodeJS

时间:2020-08-10 11:42:37

标签: javascript node.js express

我对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}`);
});


2 个答案:

答案 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}"