Обновление 12/14/15: Я вижу, что следующая глава дает указание читателю создать модуль« require », поэтому я буду продвигаться вперед. Книга, кажется, плохо отредактирована - возможно, они перегруппировали какой-то контент и не заметили ошибок, внесенных этими изменениями. По моему первоначальному вопросу, ниже, вещи, безусловно, не в порядке. Но даже если в книге есть некоторые ошибки, это заставляет меня делать внешнее чтение, чтобы понять эти ошибки, и отправлять вопросы на SO, и это помогает мне учиться. Спасибо за вашу помощь, ребята!Ошибка узла: «Не удается найти маршруты модуля» «
Я использую «Веб-разработка с MongoDB и Node.js - второе издание», чтобы узнать, узлов и MongoDB (удивительно, правда?). Подход книги, по-видимому, заключается в том, чтобы бросить читателя через создание приложения и лишь частично объяснить ситуацию на этом пути. Поэтому, когда что-то идет не так, я не понимаю, почему это пошло не так или как это исправить. Кроме того, я нашел пару опечаток кода в книге до сих пор, поэтому, возможно, одна из них вызывает мою проблему.
Прямо сейчас, я пытаюсь запустить файл server.js, который книга заставила меня создать, и я столкнулся с ошибкой. Я все еще очень новичок в Node, Express и полный стек вообще, поэтому ошибка может быть из-за чего-то действительно простого и очевидного, что мне не хватает. Помогите!
Моя структура папок: Folder Structure папка Узел Модули имеет кучу папок, которые были созданы, когда я запустил эту команду: НПХ установить экспресс MORGAN тела анализатор печенья анализатор метод Непереопределяемого ErrorHandler экспресс-рули - -сохраняйте
до сих пор, у меня есть два файла, содержимое которого были скопированы прямо из книги: server.js:
var express = require('express'),
config = require('./server/configure'),
app = express();
app.set('port', process.env.PORT || 3300);
app.set('views', __dirname + '/views');
app = config(app);
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(app.get('port'), function(){
console.log('Server up: http://localhost:' + app.get('port'));
});
И configure.js, внутри/сервер/папку. В коде для этого файла в книге появилось два опечатка, которые я исправил в этом файле. (Но, может быть, я пропустил другие, или «исправлены» те неправильно.)
var path = require('path'),
routes = require('./routes'),
exphbs = require('express-handlebars'),
express = require('express'),
bodyParser = require('body-parser'),
cookieParser = require('cookie-parser'),
morgan = require('morgan'),
methodOverride = require('method-override'),
errorHandler = require('errorhandler');
module.exports = function(app){
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({'extended': true}));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(cookieParser('some-secret-value-here'));
routes(app); //moving the routes to routes folder
app.use('/public/',
express.static(path.join(__dirname, '../public')));
if('development' === app.get('env')){
app.use(errorHandler());
}
return app;
};
В терминале я вхожу node server.js
. Я получаю сообщение об ошибке: error returned by trying to run server.js
В файле configure.js
, я думаю, я понимаю, почему я получаю ошибки - routes = require('./routes'),
заявления, кажется, требует модуля, который еще не существует, потому что книга не имеет описал, как его создать, и, похоже, он не был установлен с помощью более ранней команды npm. Но, я новичок в этом (как я все время говорю), поэтому я могу ошибаться. Может ли кто-нибудь помочь мне разобраться, что здесь происходит?
Кроме того, если вам посчастливилось порекомендовать хорошую книгу для обучения Экспресс, я все уши - возможно, я должен просто бросить эту книгу и начать с той, которая учит большей части основ, прежде чем перейти к созданию примера приложения ,
Если вы еще не написали 'маршруты ', вы получите сообщение об ошибке, когда Express попытается его исправить. Это так просто. – Andy
@ Энди, ладно, спасибо. –