Это фрагмент моего кода для файла server.js. этот файл импортирует модуль http из http, используя формат ES6, также требуется URL-адрес, чтобы иметь возможность извлекать различные части URL-адреса. Я определил переменную с именем pathname и установил ее равной url.paerse(req.url).pathname
import { createServer } from 'http';
let url = require("url");
function start(route) {
function onRequest(req,res){
let pathname =url.parse(req.url).pathname;
console.log(`Request for ${pathname} recieved`);
route(pathname);
res.writeHead(200, {"content-type":"text/plain"});
res.write("Good afternoon Paullaster");
res.end();
}
createServer(onRequest).listen(8080);
console.log("Response ready");
}
export { start};
У меня также есть файл router.js, который должен запрашивать извлеченные имена путей.
function route(){
console.log(`About to route a request for ${pathname} `);
}
export {route};
Затем у меня есть файл index.js, куда я импортирую все свои модули, и я использую index.js в качестве точки входа в свое приложение. Я импортирую функцию запуска из файла server.js и требую маршрутизатор из моего файла router.js.
import {start} from "./server";
let router = require("./router");
start(router.route);
Когда я запускаю свой код, я получаю следующую ошибку
```PS C:\Users\paullaster-geek\OneDrive\Desktop\Projects\Dive node> node -r
esm index.js
Response ready
Request for / recieved
ReferenceError: pathname is not defined
at route (C:\Users\paullaster-geek\OneDrive\Desktop\Projects\Dive
node\router.js:2:49)
at Server.onRequest (C:\Users\paullaster-
geek\OneDrive\Desktop\Projects\Dive node\server.js:9:9)
at Server.emit (events.js:314:20)
at Server.EventEmitter.emit (domain.js:486:12)
at parserOnIncoming (_http_server.js:781:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17)
PS C:\Users\paullaster-geek\OneDrive\Desktop\Projects\Dive node>