简体   繁体   English

在服务器端使用带有requirejs的路由

[英]Using routes with requirejs on the server side

I'm tinkering with server side requirejs and I have a problem with routes. 我正在修改服务器端requirejs,并且路由存在问题。 My routes/index.js file has: 我的routes / index.js文件具有:

/*
 * GET home page.
 */

  exports.index = function(req, res){
    res.render('index', { title: 'Express' });
  };
});

and in my server.js I have: 在我的server.js中,我有:

 define(['express', 'module', 'path', './routes'],
  function (express, module, path, routes) {
    var app = express();

    app.configure(function() {

      // all environments
      var filename = module.uri;

      app.set('port', process.env.PORT || 3000);

      app.use(express.static(path.dirname(filename) + '/views'));
      app.set('view engine', 'jade');
      app.use(express.favicon());
      app.use(express.logger('dev'));
      app.use(express.bodyParser());
      app.use(express.methodOverride());
      app.use(express.cookieParser('your secret here'));
      app.use(express.session());
      app.use(app.router);
      app.use(express.static(path.dirname(filename) + '/public'));

    });



    // development only
    if ('development' == app.get('env')) {
      app.use(express.errorHandler());
    }

    app.get('/', routes.index);

    return app;
 });

When I run this I get the following error: 运行此命令时,出现以下错误:

500 Error: Failed to lookup view "index"
at Function.app.render (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/application.js:489:17)
at ServerResponse.res.render (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/response.js:755:7)
at exports.index (/Users/johnwesonga/backbonejs/src/helloworld/routes/index.js:7:9)
at callbacks (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/router/index.js:161:37)
at param (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/router/index.js:135:11)
at pass (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/router/index.js:142:5)
at Router._dispatch (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/router/index.js:170:5)
at Object.router (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/lib/router/index.js:33:10)
at next (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at next (/Users/johnwesonga/backbonejs/src/helloworld/node_modules/express/node_modules/connect/lib/middleware/session.js:313:9)

Any clue where i'm going wrong? 有什么提示我要去哪里吗?

It could be simply that something has been cached or needs to be restarted. 可能只是某些内容已被缓存或需要重新启动。

Unfortunately I don't have a definitive answer, but I was having a similar problem: everything seemed to be set up correctly however I was getting an error saying that it couldn't find the view. 不幸的是,我没有确切的答案,但我遇到了类似的问题:一切似乎都已正确设置,但是我收到一条错误消息,说它找不到视图。 I gave up, switched off the computer then came back to it the next morning.....and it worked. 我放弃了,关闭了计算机,然后第二天早晨又恢复了工作。

I hope this provides a clue for anyone looking at this post, (as I did), in the future 我希望这会为以后(如我一样)查看此帖子的任何人提供线索

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM