首页 > 解决方案 > 无法获取 /ID (querystring) Express, nodeJS

问题描述

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


标签: javascriptnode.jsexpress

解决方案


可能您正在调用诸如“/id”之类的 url,并且您正在尝试获取查询字符串。要在 url 上获取 id 作为变量,您必须将路径放在如下位置:

app.get("/:id", (req, res) => {
    const id = req.params.id;
})

如果要获取查询字符串,请使用:

app.get("/", (req, res) => {
    const id = req.query.id;
})

您需要调用网址,例如:/?id=1


推荐阅读