TypeError: Невозможно прочитать свойство listOrderJson из неопределенного - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь связать маршрут с контроллером против выполнения кода в пределах определения маршрута. Вот мой контроллер:

const {mongoose} = require('../db/mongoose');
const {Order} = require('../models/order');

module.exports.listAllJson = function(req, res) {
    res.send({"Here": "something"});
}

А вот мой файл server.js:

var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var schedule = require('node-schedule');

var {mongoose} = require('./db/mongoose');
var {Order} = require('./models/order');
var {orderController} = require('./controllers/orderController');

var app = express();

app.use(bodyParser.json());

app.get('/orders', (req, res) => {
    orderController.listAllJson().bind(orderController);
});

app.listen(3000, () => {
    console.log('Started on port 3000');
});

module.exports = {app};

Когда я выбираю маршрут / заказы с помощью почтальона, я получаю:

TypeError: Невозможно прочитать свойство listOrderJson с неопределенной ошибкой.

Я добавил часть 'bind' к вызову функции после поиска здесь переполнения стека на тонну, но это не помогло. Что я здесь не так делаю?

1 Ответ

0 голосов
/ 27 апреля 2018

orderController равен { listAllJson: fn }, так что вы можете просто деструктурировать и использовать его.

var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var schedule = require('node-schedule');

var {mongoose} = require('./db/mongoose');
var {Order} = require('./models/order');
var {listAllJson} = require('./controllers/orderController');

var app = express();

app.use(bodyParser.json());

app.get('/orders',  listAllJson);

app.listen(3000, () => {
    console.log('Started on port 3000');
});

module.exports = {app};

Также второстепенная нота: res.json({"Here": "something"}); выполняет строковое преобразование и устанавливает заголовки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...