Ошибка типа: app.listen не является функцией NODEJS - PullRequest
0 голосов
/ 31 марта 2020

Я не могу понять, почему я вижу эту ошибку.

мой app.js файл

const express = require("express");
const morgan = require('morgan');
const app = express();

const tourRouter = require('./routers/tourRouter');
const userRouter = require('./routers/userRouter');

app.use(express.json());
app.use(morgan('dev'));
app.use((req,res,next)=>{
    req.RequestTime = new Date().toISOString();
    next();
});

app.use('/api/v1/tours',tourRouter);
app.use('/api/v1/users',userRouter);
const port = 3000;
app.listen(port, () => {
    console.log(`App running on port ${port}`);
});

это работает без проблем, но когда я обрезаю

const port = 3000;
app.listen(port, () => {
    console.log(`App running on port ${port}`);
});

эта часть и я пишу приложение. js папка exports.module = app; и я создаю server.js файл

const app = require('./app');
const port = 3000;
app.listen(port, () => {
    console.log(`App running on port ${port}`);
});

это не работает, и я получаю

TypeError: app.listen не является функцией

1 Ответ

0 голосов
/ 31 марта 2020

Как прокомментировал @ Dickens AS , вам необходимо присвоить object: app: instance of express module.exports в file: "app.js".

Read Do c: Node.js: module.exports

многие хотят, чтобы их модуль был экземпляром некоторого класса. Для этого назначьте нужный объект экспорта для module.exports.

Добавьте это в of of file:app.js:

module.exports = app;

...