只是动态链接有些问题

问题描述 投票:0回答:1

基本上我在使评论链接动态化方面遇到问题。我的目标是,无论我输入什么号码,get 都会输入我的呼叫并给我我想要的 id,该呼叫看起来像 http://localhost:1234/comments?id=num 但我找不到任何可以让我的电话是动态的任何帮助都是感激的

server.js
    
    (async () => {
        const db = require("./database");
        const users = await db.selectUsers();
        console.log(users);
        /*const assoc = await db.selectAssoc();
        console.log(assoc);*/
        const processRequest = require('./processRequest');
        const aplicacao = processRequest(1234);
        aplicacao.get('/users',function(req,res){
            res.write(JSON.stringify(users));
            res.end();
        });
        aplicacao.get('/comments?id=1',function(req,res){
            console.log("entered");
            res.end();
        });
    })();    
processRequest.js

   var http = require('http'); 
var criarProcessRequest = function(porta){
    var entrada = {};// Api de entrada
    var caminhos = {};// rotas para o pedido
    var metodos = ['GET','POST'];// O pedido é enviado com maisculas    
    metodos.forEach(function(metodo){
        caminhos[metodo] = {};
        entrada[metodo.toLowerCase()] = function(path,fn){
            caminhos[metodo][path] = fn;
        };
    });
    http.createServer(function(req,res){
        res.setHeader('Access-Control-Allow-Origin','*');
        if(!caminhos[req.method][req.url]){
            res.statusCode = 404;
            return res.end();
        }
        caminhos[req.method][req.url](req,res);
    }).listen(porta);
    return entrada;
};
module.exports = criarProcessRequest;

如果英语不好,那也很抱歉,这不是我的第一语言

我尝试过特殊字符,例如#、$、&、?并尝试过研究

javascript node.js
1个回答
0
投票

如果您使用的是普通 Node.js,您可以利用内置的

url
模块来解析 URL:

const url = require('url');

aplicacao.get('/comments', function(req, res) {
  const parsedUrl = url.parse(req.url, true);
  const id = parsedUrl.query.id;

  ...
});

使用 Express.js 框架会更容易,因为您可以使用

req.query
直接访问 URL 参数。

© www.soinside.com 2019 - 2024. All rights reserved.