Начальная книга узла - requestHandlers

Как говорится в названии, у меня есть проблема с тем, что в командной строке node.js лежит ложь в файле requestHandlers.js. Я следую руководству в Книге Нода Новичка и до сих пор не было никаких проблем с книгой - или, скорее, с моим кодом.

У меня есть следующий ввод:

index.js:

var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);

server.js:

var http = require("http");
var url = require("url");
function start(route, handle) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(handle, pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;

router.js

function route(handle, pathname) {
console.log("About to route a request for " + pathname);
if (typeof handle[pathname] === 'function') {
handle[pathname]();
} else {
console.log("No request handler found for " + pathname);
}
}
exports.route = route;

requestHandlers.js

function start() {
console.log("Request handler "start" was called.");
}
function upload() {
console.log("Request handler "upload" was called.");
}
exports.start = start;
exports.upload = upload;

И у меня есть этот вывод:

"C:\Program Files (x86)\nodejs\requestHandlers.js: 1 console.log(" запуск обработчика запроса "был

SyntaxError: Unexpected identifier
 at Module._compile (module.js:439:25)
 at Object.Module._extensions..js (module.js:474:10)
 at Module.load (module.js:356:32)
 at Function.Module._load (module.js:312:12)
 at Module.require (module.js:364:17)
 at require (module.js:380:17)
 at Object.<anonymous> (C:\Program Files (x86)\nodejs\index.js:1:153)
 at Module._compile (module.js:456:26)
 at Object.Module._extensions..js (module.js:474:10)
 at Module.load (module.js:356:32)"
</anonymous>

Я не могу понять, где проблема. Я следовал руководству в книге, и я либо скопировал код из книги, либо написал его сам. Я дважды проверял код на наличие ошибок, но не нашел. Я помню, например, использовать "функцию", поэтому в коде не было бы ошибок при вводе в node.js.

Поэтому любая помощь будет оценена!

Благодарю.

1 ответ

Вы смешиваете разные строковые маркеры в JavaScript.

function start() {
 console.log("Request handler "start" was called.");
}
function upload() {
 console.log("Request handler "upload" was called.");
}

Вы можете использовать "для начала и конца строки, но было вызвано что-то вроде "Request handler "start" was called."

Является недействительным, потому что завершает строку в "старте и начать новую строку в" называется.

Если start и upload являются переменными, просто объединяйте строки с чем-то вроде этого:

"Request handler " + start + " was called."

или измените строку следующим образом:

"Request handler 'start' was called."

или удалить "вокруг запуска и загрузки".

licensed under cc by-sa 3.0 with attribution.