简体   繁体   中英

node server Error: Route.get() requires a callback function but got a [object Undefined]

when I try to run the node server, I get Error: Route.get() requires a callback function but got a [object Undefined]
at Route. [as get]

Here is the complete error message:

node server.js E:\OneDrive\Documents\rest\node_modules\express\lib\router\route.js:202 throw new Error(msg); ^ Error: Route.get() requires a callback function but got a [object Undefined]
at Route. [as get] (E:\OneDrive\Documents\rest\node_modules\express\lib\router\route.js:202:15) at module.exports (E:\OneDrive\Documents\rest\routes.js:13:10) at Object. (E:\OneDrive\Documents\rest\server.js:11:1) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 Blockquote

controller.js

    'use strict';

var response = require('./res');
var connection = require('./connection');

exports.index = function (req, res) {
    response.ok("REST API!", res)
};

//display all restapi data
exports.displayrestapi = function (req, res) {
    connection.query('SELECT * FROM restapi', function (error, rows, fileds) {
        if (error) {
            console.log(error);
        } else {
            response.ok(rows, res)
        }
    });

    //display all restapi data by id
    exports.displaybyid = function (req, res) {
        let id = req.params.id;
        connection.query('SELECT * FROM restapi WHERE id = ?', [id],
            function (error, rows, fields) {
                if (error) {
                    console.log(error);
                } else {
                    response.ok(rows, res);
                }
            });
    };
};

routes.js

'use strict';

module.exports = function (app) {
    var jsonku = require('./controller');

    app.route('/')
        .get(jsonku.index);

    app.route('/display')
        .get(jsonku.displayrestapi);

    app.route('/tampil/:id')
        .get(jsonku.displaybyid);
}

server.js

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

//parser application/json
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

//panggil routes
var routes = require('./routes');
routes(app);

app.listen(3000, () => {
    console.log(`Server started on port`);
});

TIA^^

//display all restapi data
exports.displayrestapi = function (req, res) {
    connection.query('SELECT * FROM restapi', function (error, rows, fileds) {
        if (error) {
            console.log(error);
        } else {
            response.ok(rows, res)
        }
    });
}

    //display all restapi data by id
    exports.displaybyid = function (req, res) {
        let id = req.params.id;
        connection.query('SELECT * FROM restapi WHERE id = ?', [id],
            function (error, rows, fields) {
                if (error) {
                    console.log(error);
                } else {
                    response.ok(rows, res);
                }
            });
    };

you forgot to close displayrestapi controller. just copy-paste this code it will work 100%

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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