модуль querystring (qs) не анализируется в nodejs? - PullRequest
0 голосов
/ 09 ноября 2018

Все, я новичок в NODEJS. Я отправляю данные через почтовый запрос от почтальона. В какой-то момент я использую модуль querystring. Я анализирую почтовые данные. Я хочу напечатать имя пользователя и пароль в этот код. но это не печать. кто-нибудь может решить эту проблему? Заранее спасибо ...

"use strict";
let http=require('http');
let url=require("url");
let qs=require("querystring");
let port=process.env.PORT||8086;
let routes={
 'GET':
 {
      '/':(req,res,urldata)=>
      {
        res.statusCode=200;
        res.setHeader('content-Type','text/plain');
        res.end("I 'm sending get request data " );
      },
      '/api/getinfo':(req,res,urldata)=>{
        res.statusCode=200;
        res.setHeader('content-Type','application/json');
        console.log(JSON.stringify(urldata.query));
        res.end(JSON.stringify(urldata.query));
      }
 },
 'POST':
 {
     '/':(req,res,urldata)=>{
        res.statusCode=200;
        res.setHeader('content-Type','text/plain');
        res.end("I 'm sending post request " );
     },
     '/api/login':(req,res,urldata)=>{
       let body='';
        req.on('data',(c)=>{
            body+=c;
       });
       req.on('end',()=>{
           let par=qs.parse(body);
           console.log("USERNAME POST:"+par['user']);
           console.log("PASSWORD POST:"+par['pass']);
           res.end("ok I'm getting post data");
       });
     }
 },
 'NA':(req,res)=>{
      res.statusCode=404;
      res.end("Content Not found");
 }
}
function handler(req,res)
{
    if(req.url!="/favicon.ico")
    {
        let urldata=url.parse(req.url,true);
        console.log(urldata);
        console.log("Request Method:"+req.method);
        console.log("Request URL:"+req.url);
        console.log("Pathname:"+urldata.pathname);
        let a=routes[req.method][urldata.pathname];
       
        if(a!=undefined)
        {
            a(req,res,urldata);
        }
        else{
            routes['NA'](req,res);
        }
       
      
    }
}
let server=http.createServer(handler);
server.listen(port,()=>{
    console.log("server is listening on port",`${port}`);
});

1 Ответ

0 голосов
/ 09 ноября 2018

Вы должны использовать: const par = JSON.parse (body)

вместо: let par = qs.parse (body);

"use strict";
let http=require('http');
let url=require("url");
let qs=require("querystring");
let port=process.env.PORT||8086;
let routes={
 'GET':
 {
      '/':(req,res,urldata)=>
      {
        res.statusCode=200;
        res.setHeader('content-Type','text/plain');
        res.end("I 'm sending get request data " );
      },
      '/api/getinfo':(req,res,urldata)=>{
        res.statusCode=200;
        res.setHeader('content-Type','application/json');
        console.log(JSON.stringify(urldata.query));
        res.end(JSON.stringify(urldata.query));
      }
 },
 'POST':
 {
     '/':(req,res,urldata)=>{
        res.statusCode=200;
        res.setHeader('content-Type','text/plain');
        res.end("I 'm sending post request " );
     },
     '/api/login':(req,res,urldata)=>{
       let body='';
        req.on('data',(c)=>{
            body+=c;
       });
       req.on('end',()=>{
           const par=JSON.parse(body)
           console.log("USERNAME POST:"+par['user']);
           console.log("PASSWORD POST:"+par['pass']);
           res.end("ok I'm getting post data");
       });
     }
 },
 'NA':(req,res)=>{
      res.statusCode=404;
      res.end("Content Not found");
 }
}
function handler(req,res)
{
    if(req.url!="/favicon.ico")
    {
        let urldata=url.parse(req.url,true);
        console.log(urldata);
        console.log("Request Method:"+req.method);
        console.log("Request URL:"+req.url);
        console.log("Pathname:"+urldata.pathname);
        let a=routes[req.method][urldata.pathname];
       
        if(a!=undefined)
        {
            a(req,res,urldata);
        }
        else{
            routes['NA'](req,res);
        }
       
      
    }
}
let server=http.createServer(handler);
server.listen(port,()=>{
    console.log("server is listening on port",`${port}`);
});
...