0

i'm trying to understand why the code 1 works, and why the 2 does not..

app.js:

// Routes
var server = require('./routes/server');

app.use('/', server);

Route.js:

var express     = require('express');
var resource    = require('express-resource');

var server = express();

server.resource('exampleserver', require('../controllers/example'));

module.exports = server;

Ok, working good.

When i try pass everything to one file, the server will break:

app.js:

    var express     = require('express');
    var resource    = require('express-resource');

    var server = express();


// Routes
app.use('/', resource('exampleserver', require('./controllers/example')));

This will appear in the terminal:

/Users/marceloalves/Desktop/MVC-Structure/node_modules/express-resource/index.js:63
    if (actions[key]) this.mapDefaultAction(key, actions[key]);
                           ^
TypeError: Object #<Object> has no method 'mapDefaultAction'
    at Resource (/Users/marceloalves/Desktop/MVC-Structure/node_modules/express-resource/index.js:63:28)
    at Object.<anonymous> (/Users/marceloalves/Desktop/MVC-Structure/app.js:40:15)
    at Module._compile (module.js:456:26)
    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 Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

Can anyone give me a hand here? haha

1 Answer 1

1

In your second example you don't use server.resource(), but call resource() directly. Try this:

app.use('/', server.resource('exampleserver', require('./controllers/example')));
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.