Привет всем, я новичок в NodeJS, я не смог получить значение независимо от данных в запросе на получение. Он показывает ошибку «Невозможно прочесть свойство user of undefined». Это URL-адрес, который я указал в браузере. http: // локальный: 8086 / dopath? user = viki & pass = vino Я приложил код. Может ли кто-нибудь решить эту проблему? Заранее спасибо ...
"use strict";
let http=require('http');
let url=require("url");
let port=process.env.PORT||8086;
function handler(req,res)
{
if (req.url! = "/favicon.ico")
{
let urldata=url.parse(req.url);
console.info(urldata);
console.info("Request Method:"+req.method);
console.info("Request URL:"+req.url);
console.info("Username:"+req.query.user);
console.info("Password:"+req.query.pass);
res.statusCode=200;
res.setHeader('content-Type','text/plain');
res.end("I 'm sending data username is "+`${req.query.user}`+"and password is "+`${req.query.pass}`);
}
}
let server=http.createServer(handler);
server.listen(port,()=>{
console.info("server is listening on port",`${port}`);
});




Пожалуйста, используйте пробелы в своем коде, иначе будет трудно читать. Также используйте const вместо let, когда переменная не меняется. Вы забыли использовать проанализированные urlData.
Попробуй это:
'use strict'
const http = require('http')
const url = require('url')
const port = process.env.PORT || 8086
function handler (req, res) {
if (req.url !== '/favicon.ico') {
const urlData = url.parse(req.url, true)
console.info(req.query)
console.info(urlData)
console.info('Request Method:' + req.method)
console.info('Request URL:' + req.url)
console.info('Username:' + urlData.query.user)
console.info('Password:' + urlData.query.pass)
res.statusCode = 200
res.setHeader('content-Type', 'text/plain')
res.end("I 'm sending data username is " + `${urlData.query.user}` + 'and password is ' + `${urlData.query.pass}`)
}
}
const server = http.createServer(handler)
server.listen(port, () => {
console.info('server is listening on port', `${port}`)
})
ну, я запускаю его с локальный: 8086 / dopath? user = foo & pass = bar и вроде нормально. Как вы управляете своим сервером?
Спасибо, все работает нормально. Я пропустил истинный параметр при разборе URL.
Добро пожаловать. Пожалуйста, не забудьте принять ответ.
req.queryсуществует в expressjs. Модульhttpне передает проанализированный объект запроса в качестве аргумента. поэтому вам нужно проанализироватьreq.urlи обнаружить часть запроса