The node.js with ejs web application shows me referenceerror consistently

I'm building a test webpage using node.js with ejs(both are the latest versions). BTW whenever I run the server, it shows me below error messages.

ReferenceError: /Users/xxxxxxxx/Project/workspace/nodesails/views/user/signup.ejs:28
   26| 
   27|         <ul>
>> 28|             <% _.each(users, function(user) { %>
   29|             <li><%= user.name %> : <%= user.content %></li>
   30|             <% }) %>
   31|         </ul>

users is not defined
    at eval (eval at <anonymous> (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/ejs/lib/ejs.js:236:14), <anonymous>:29:3642)
    at eval (eval at <anonymous> (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/ejs/lib/ejs.js:236:14), <anonymous>:29:4048)
    at /Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/ejs/lib/ejs.js:249:15
    at Object.exports.render (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/ejs/lib/ejs.js:287:13)
    at Object.exports.renderFile (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/ejs/lib/ejs.js:317:20)
    at View.module.exports [as engine] (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/ejs-locals/index.js:85:7)
    at View.render (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/express/lib/view.js:76:8)
    at Function.app.render (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/express/lib/application.js:506:10)
    at ServerResponse.res.render (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/node_modules/express/lib/response.js:756:7)
    at renderView (/Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/lib/hooks/views/index.js:298:20)
    at /Users/xxxxxxxx/Project/workspace/nodesails/node_modules/sails/lib/hooks/views/index.js:280:20
    at Object.oncomplete (fs.js:107:15)

the controller(UserController.js) is as below

var data = [
    {name: "Test 1", content:"xxxxxxxxxxxxxx"},
    {name: "Test 2", content:"zzzzzzzzzzzzzz"},
    {name: "Test 3", content:"yyyyyyyyyyyyyy"}
];

module.exports = {

    add: function(req, res) {
        res.send('Add a user');
    },

    remove: function(req, res) {
        res.send('Remove a user');
    },

    signup: function(req, res) {
        res.send('Signup here');

        return res.view({users: data});
    }
};

and this is the part of the routes.js

'/user/signup': {
    view: 'user/signup'
},

and finally, the view file(view/user/signup.ejs) is

<div class="container clearfix">
    <div class="main">
        <h1 id="main-title">Register Here!</h1>

        <ul>
            <% _.each(users, function(user) { %>
            <li><%= user.name %> : <%= user.content %></li>
            <% }) %>
        </ul>
    </div>
</div>

I think I've tried everything I can. Give me a helping hand, please. THANKS!

In your controller, your signup route is wrong. You have to call res.render instead of res.view and skip the res.send call. At the moment you are only returning a string, and of course this does not work ...

It should be something such as

module.exports = {
  // ...
  signup: function(req, res) {
    res.render('signup', { users: data });
  }
};

where signup is your view (signup.ejs, but you do not have to provide the extension, as Express automatically knows which extension to use based on the view engine configured).